器用貧乏の独り言

器用貧乏なおっさんが気の向くままに。

【VBA】マクロの処理時間を計測するマクロ

◇前置き

マクロで業務改善を行った際、

「具体的に何秒間かかっているか数値化したい!」

と思ったことはありませんか?

今日はそんな時に使える、処理時間計測マクロを紹介します。

◇概要

今回は、処理時間の計測だけお見せしたいので、余計な処理は含めずにWait関数で代用していきます。
※詳しくはソースコードの方で説明します。

ソースコード

今回のコードはこんな感じです。

Sub TimeMeasument()
 
   '各種変数を定義
   Dim StartTime As Date
   Dim EndTime As Date
   Dim Process As Date
   Dim i As Double
   
   '処理開始時刻を変数に格納
   StartTime = Now
   
'計測したい処理
'----------------------------------------------------
'※今回は例としてWaitを使います。(10秒間止める)
 
   Application.Wait (StartTime + TimeValue("0:00:10"))
 
'----------------------------------------------------
 
   '処理終了時刻を変数に格納
   EndTime = Now
   
   '処理にかかった時間を計算
   Process = EndTime - StartTime
   
   '処理結果をメッセージボックスに表示
   MsgBox "処理が完了しました!" & vbCrLf & vbCrLf & "処理時間:" & _
   Process & vbCrLf, vbOKOnly + vbInformation, "計測結果"
 
End Sub


実際に使う時は、この部分を計測したいマクロに置き換えてください。

Application.Wait (StartTime + TimeValue("0:00:10"))

※この例では、10秒間Excelの動作を停止させています。

◇使い方

実際にマクロを実行してみると・・・・

処理時間が表示されましたね!

◇最後に

今回紹介したコードは、単体で使うものではありません。
他のコード(マクロ)に組み込むことで、効果の見える化をするためのコードです。

「○○分 かかっていた作業が△△秒になりました!」

みたいな感じで、具体的に数値で成果を言えるとかっこいいですよね!
仕事でマクロを作ることのある方は、ぜひ使ってみてください。