作成日 2005/11/12
最終更新日 2005/11/12

現在時刻をミリ秒まで取得する

 VB6.0やVBAのNow関数を使うと現在時刻を取得する事ができる。
でも、なぜだかミリ秒まで取得できない。
しかし、あるメソッドの処理にかかる時間を計りたい場合(※1)は、
ミリ秒まで取得できないと困る。

ということで、現在時刻をミリ秒まで取得する方法をいい加減に説明します。(※2)

※1:よくある話だ。プログラムを作ったはいいが、
遅くて使い物にならないときは、普通の人なら、どこの処理に時間がかかっているのかを調べる。
他にも使用する理由はいくらでもあると思う。
※2:CarbonLibを使用します。だるまは、CarbonLibについては超初心者です。注意してください。

1.Macの場合((MacOS9以上 + Carbon1.0.2以上)、or MacOSX)
2.Windowsの場合
3.サンプルをダウンロードして使ってみたい

1.Macの場合((MacOS9以上 + Carbon1.0.2以上)、or MacOSX)

このページのトップへ

2.Windowsの場合

 Windows APIのGetLocalTimeを使えば何とかなる。
 詳しい事は他のサイトをみるか、サンプルを見て。

このページのトップへ

3.サンプルをダウンロードして使ってみたい

 サンプル(ファイル名: test_getMilliSecs.xls)

ダウンロードしたら、Module1のtestメソッドを実行してみてください。
現在時刻とミリ秒がイミディエイトウインドウに出力されます。



表2 作った関数の仕様
関数の定義
Public Sub getLocalTimeWithMilliSecs(ByRef datNow As Date, ByRef intMilliSecs As Integer)
引数
■datNow(out引数)
現在時刻が入る。
Now関数の結果と同じ(はず)。
■intMilliSecs(out引数)
ミリ秒(0〜999の値)が入る

表3 サンプルのテスト環境と結果
No
Excel
OS
結果
1
Microsoft Excel X for Mac
Mac OS X 10.3.9
関数の処理が微妙に遅かった。
(といっても1[ms]以下)
2
Microsoft Office Excel 2003
Microsoft Windows XP Home Edition
問題なし。
3
Microsoft Excel 97
Microsoft Windows 98
ミリ秒が10[ms]ごとにしか取得できなかった。


Prev Up Next  Top
このページのトップへ

このページの利用によって発生した、いかなる損害について、このホームページの作成者は責任を負いません。
このページの間違いや嘘を見つけた方、このページに書いて欲しい情報がある方はメールをお願いします。

Microsoft 、Windows 、Office 、Visual Basic および Excel は米国Microsoft Corporationの米国およびその他の国における登録商標または商標です。
ここではExcel® をエクセル、Visual Basic® for Applications をVBAと表記する場合があります。
Mac 、Mac OS 、Mac OS X は米国Apple Computer,Inc.の登録商標または商標です。
その他、社名および商品名、システム名称などは、一般に各社の商標または登録商標です。

このホームページの作成者はこれらの会社とはいっさい関係がありません。