教えて!ExcelVBA!

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

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

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

API宣言

VBAからGetTickCount関数を使用するためには、API宣言が必要です。API宣言は、WindowsのAPIをVBAで使用するために必要な宣言のことです。次のように宣言します。

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

この宣言では、GetTickCount関数を使用するために必要な「kernel32.dll」というWindowsのライブラリをロードし、GetTickCount関数の宣言を行っています。また、関数が返す型はLong型となります。

使い方

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

Dim tickCount As Long
tickCount = GetTickCount()

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

プログラミング例

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

Option Explicit

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関数は、WindowsのAPIの一つで、システムの起動からの経過時間をミリ秒単位で返します。また、システムの起動からの経過時間を取得するための非常に便利な関数です。