プロが教えるわが家の防犯対策術!

VBで時刻をミリ秒まで表示したいのですが
FORMATでSSより小さな単位ありますか?
もしくはFORMAT関数を使用しないで表示できますか?

A 回答 (3件)

正確なミリ秒を取得する方法は、あるのかもしれませんが一般的にはよく知られていませんし、私も知りません。


しかし、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)

私は、これにそれぞれの桁をそろえる自作関数を合わせて使っていました。
    • good
    • 0
この回答へのお礼

time()しかおもいつかなかったもので・・・
timerだとできますね。
ありがとうございました。

お礼日時:2004/07/20 09:10
    • good
    • 0
この回答へのお礼

お返事が遅くなりました。
やっぱりAPIを使用しないとできないですね。
ありがとうございました。

お礼日時:2004/07/20 09:07

Public Declare Function GetTickCount Lib "KERNEL32" ()As Long



標準モジュールでこれを宣言してください。
ms = GetTickCount
などとすることで、Windowsが起動してからの時間(ミリ秒)が取得できますので、あとは割り算などで好きなフォーマットにすればよいと思います。

この回答への補足

さっそくのお返事ありがとうございます。
Windowsが起動してからの時間ってTime関数と同じ時間をさしますか?
(ミリ秒だけではなくhh:mm:ss:○○といったふうに取得したいのですが・・・)

補足日時:2004/07/16 14:38
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A