通常、現在のシステムの日付と時刻を取得するにはNow関数を使いますが、システム開発を行っていると、もっと細かい単位(ミリ秒単位)で時刻を取得したいといった場合があります。そういった場合は、VBAだけでは無理ですのでWin32APIのGetLocalTime関数を使います。
例
現在のシステム日時を取得してメッセージボックスに表示してみたいと思います。'構造体定義 Private Type SYSTEMTIME wYear As Integer wMonth As Integer wDayOfWeek As Integer wDay As Integer wHour As Integer wMinute As Integer wSecond As Integer wMilliseconds As Integer End Type 'Win32API宣言 Private Declare Sub GetLocalTime Lib "kernel32" (lpSystem As SYSTEMTIME) Public Sub GetDetailTime() Dim sysLocalTime As SYSTEMTIME Dim result As String '// 現在のシステム日時を取得 GetLocalTime sysLocalTime result = sysLocalTime.wYear & "/" & _ Format(sysLocalTime.wMonth, "00") & "/" & _ Format(sysLocalTime.wDay, "00") & " " & _ Format(sysLocalTime.wHour, "00") & ":" & _ Format(sysLocalTime.wMinute, "00") & ":" & _ Format(sysLocalTime.wSecond, "00") & "." & _ Format(sysLocalTime.wMilliseconds, "000") MsgBox "現在の詳細時刻:" & result End Subまず、上記のようにSYSTEMTIME構造体定義とGetLocalTimeのWin32API宣言を行ってください。
あとは、GetLocalTimeを実行して現在のシステム日時を取得します。
取得したシステム日時は、引数に指定したSYSTEMTIME型構造体に格納されます。
実行結果
スポンサーリンク