教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について紹介します。

【ExcelVBA API操作】Windowsが起動している時間を取得(GetTickCount)する方法を教えて!

GetTickCount関数は、WindowsAPIの一つで、システムの起動からの経過時間をミリ秒単位で返します。Windowsが起動されてから、最後にシステムの起動時間がリセットされた時点までの経過時間を返します。この関数を使用することで、システムの動作時間を取得することができます。

API宣言

ExcelVBAでは、GetTickCount関数を使用する前にAPI宣言を行う必要があります。API宣言を行うことで、ExcelVBAがWindowsAPI関数を認識することができるようになります。API宣言は次のように行います。

Private Declare Function GetTickCount Lib "kernel32" () As Long

解説

パラメータ 内容
Lib 使用する動的リンクライブラリ(DLL)の名前を指定します。ここでは "kernel32.dll"となります。

使い方

GetTickCount関数を使用するには、次のように関数を呼び出します。

Dim tickCount As Long
tickCount = GetTickCount()

このようにすることで、tickCount変数にシステムの起動からの経過時間をミリ秒単位で返すことができます。

プログラミング例

次の例では、GetTickCount関数を使用して、VBAプログラムが実行された時間を取得します。

Private Declare Function GetTickCount Lib "kernel32" () As Long

Sub GetProgramElapsedTime()
 Dim start_time As Long
 Dim elapsed_time As Long
 start_time = GetTickCount()
 ' ここにプログラムの処理を書く
 elapsed_time = GetTickCount() - start_time
 MsgBox "プログラムの実行時間:" & elapsed_time & "ミリ秒"
End Sub

このプログラムでは、GetTickCount関数を使用して、プログラムの開始時刻を取得しています。その後、プログラムの処理を行い、処理が終了した時刻から開始時刻を引くことで、プログラムの実行時間を計算しています。最後に計算結果をMsgBoxで表示しています。

まとめ

GetTickCount関数は、システムの起動からの経過時間をミリ秒単位で返します。また、システムの起動からの経過時間を取得するための非常に便利な関数です。