【VBA】処理に掛かる時間を計測する

性能要件により
 ・VBAで作成したツールの処理時間に
 ・制限がある
ことがあります。
※「30秒以内に処理が終了すること」等。

この記事では
 ・処理に掛かる時間を計測し、
 ・結果をメッセージボックスで表示する
VBAコードを紹介します!

処理時間を伝えるメッセージボックス
処理時間を伝えるメッセージボックス
PR

VBAコード

計測した処理の前後で、Now関数を使用し現在日時を取得します。
取得した日時を使用して処理時間を算出します。

Option Explicit

Sub execTimeSample()

    Dim startDateTime As Date
    Dim endDateTime As Date
    Dim processTime As Date
    
    Dim i As Double
    
    '開始日時を取得
    startDateTime = Now
    
    '計測したい処理
    For i = 0 To 500000000
    
    Next i
    
    '終了日時を取得
    endDateTime = Now
    
    '処理時間を算出
    processTime = endDateTime - startDateTime
    
    MsgBox "処理が完了しました!" & vbCrLf & vbCrLf & _
            "開始日時:" & startDateTime & vbCrLf & _
            "終了日時:" & endDateTime & vbCrLf & _
            "処理時間:" & processTime & vbCrLf, _
            vbOKOnly + vbInformation, "計測結果"
End Sub

「Now関数」により、現在日時を取得しています(10、18行目)。
※「開始日時」と「終了日時」を取得しています。

「開始日時」と「終了日時」を使用して、「処理時間」を算出しています(21行目)。

PR

実行結果

処理に掛かる時間を計測できました。

処理時間を伝えるメッセージボックス
処理時間を伝えるメッセージボックス
PR

参考①

高速化対応をすることで、処理に掛かる時間を短縮できます。

高速化対応については、以下の記事をご確認ください。

PR

参考②

上記のVBAコードで使用した以下の詳細は、公式サイトをご確認ください。

●Now関数