- 締切済み
format関数について
VBで時刻をミリ秒まで表示したいのですが FORMATでSSより小さな単位ありますか? もしくはFORMAT関数を使用しないで表示できますか?
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- you-m
- ベストアンサー率58% (190/327)
正確なミリ秒を取得する方法は、あるのかもしれませんが一般的にはよく知られていませんし、私も知りません。 しかし、1秒よりも小さい数字を取得する方法が無いわけでもありません。 以前に私が取った方法は、以下のような方法です。 Timer関数を使って、午前0時からの経過秒数を取得します。これは、実際には単精度浮動小数点数型で帰ってくるので、小数点以下の数値があります。 この数値を取り出して、1秒以下を表すのは可能です。 ただし、あくまで前後を把握するための参考程度でしょう。 この数値から、「時:分:秒.それ以下」という文字列をつくれば、それっぽい表示が可能です。 ちなみに、判るとは思いますが、それぞれの算出方法は次の通りです。 total_Sec = Timer '午前0時からの経過秒数(単精度浮動小数点数型) '時の取得 h = CStr(Int(total_Sec / 3600)) '分 m = CStr(Int((total_Sec - 3600 * h) \ 60)) '秒 s = CStr(Int(total_Sec - 3600 * h - 60 * m)) '1秒以下 under_s = CStr(total_Sec - 3600 * h - 60 * m - s) 私は、これにそれぞれの桁をそろえる自作関数を合わせて使っていました。
- todo36
- ベストアンサー率58% (728/1234)
お礼
お返事が遅くなりました。 やっぱりAPIを使用しないとできないですね。 ありがとうございました。
- masaboo
- ベストアンサー率58% (7/12)
Public Declare Function GetTickCount Lib "KERNEL32" ()As Long 標準モジュールでこれを宣言してください。 ms = GetTickCount などとすることで、Windowsが起動してからの時間(ミリ秒)が取得できますので、あとは割り算などで好きなフォーマットにすればよいと思います。
補足
さっそくのお返事ありがとうございます。 Windowsが起動してからの時間ってTime関数と同じ時間をさしますか? (ミリ秒だけではなくhh:mm:ss:○○といったふうに取得したいのですが・・・)
お礼
time()しかおもいつかなかったもので・・・ timerだとできますね。 ありがとうございました。