教えて!ExcelVBA!

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

【ExcelVBA 関数】Timer関数の使い方を教えて!

構文

構文は以下の通りです。

Timer

解説

Timer関数は、経過時間を計測するための関数です。主にプログラムの処理時間や実行速度を測定する際に利用されます。Timer関数は実行された時点からの経過時間(秒単位)を返します。たとえば、プログラムの開始地点でTimer関数を実行し、処理が完了した地点で再度Timer関数を実行すると、その間の経過時間を秒単位で取得することができます。

使い方

具体的な使い方を紹介します。

Sub TimerExample()
    Dim startTime As Single
    Dim endTime As Single
    Dim elapsedTime As Single
    ' 開始時間を記録
    startTime = Timer
    ' ここに計測したい処理を記述する
    ' 例えば、1000ミリ秒(1秒)待つ処理としてSleepメソッドを使用する場合、
    ' Application.Waitを利用することもできます
    ' 終了時間を記録
    endTime = Timer
    ' 経過時間を計算
    elapsedTime = endTime - startTime
    ' 結果を表示
    MsgBox "処理時間:" & elapsedTime & "秒"
End Sub

上記のサンプルコードでは、処理時間を計測するための基本的な使い方を示しています。

1.開始時間を記録するために、startTime = Timerというコードを記述します。
2.計測したい処理を記述します。ここでは1000ミリ秒(1秒)待つ処理を例としていますが、実際の処理内容に合わせてカスタマイズしてください。
3.終了時間を記録するために、endTime = Timerというコードを記述します。
4.経過時間を計算するために、elapsedTime = endTime - startTimeというコードを記述します。終了時間から開始時間を引くことで、経過時間を求めることができます。

最後に、計測結果を表示するために、MsgBox "処理時間:" & elapsedTime & "秒"というコードを記述します。この例では、メッセージボックスに経過時間を表示しますが、結果の表示方法は自由に変更することができます。

プログラミング例

例えば、次のような簡単な処理を行うプログラムを考えます。処理としては、1から10までの数字を順番に表示し、それぞれの表示までの経過時間を計測するものです。

Sub TimerExample2()
    Dim startTime As Single
    Dim endTime As Single
    Dim elapsedTime As Single
    Dim i As Integer
    ' 開始時間を記録
    startTime = Timer
    ' 処理と計測
    For i = 1 To 10
        Debug.Print i
        endTime = Timer
        elapsedTime = endTime - startTime
        Debug.Print "経過時間:" & elapsedTime & "秒"
        startTime = endTime
    Next i
End Sub

上記のサンプルコードでは、1から10までの数字を順番に表示し、それぞれの表示までの経過時間を計測しています。Debug.Printを使って経過時間を表示していますが、ここでは即座に結果が表示されます。

まとめ

Timer関数は、経過時間を計測する際に便利な関数です。Timer関数を活用することで、プログラムの処理時間や実行速度を測定することができます。是非活用してください。