今回のコードは以下のメッセージボックスに記載されているように処理時間を取得するコードです。 今作っているプログラムにちょこっと加えるだけで処理時間を計測できますので、ぜひ使ってみてください。
処理時間を計測するコード
途中にメインの処理をいれています。 ここでは、100万行A列に連番を入力しているだけですが、私の環境では約30秒かかる処理でした。
Sub 処理時間計測() ' 時間計測開始 Dim startTime, stopTime, processTime, resultTime As Variant startTime = Time ' ****************** ' メインの処理 For i = 1 To 1000000 Cells(i, 1) = i Next ' ****************** ' 時間計測終了 stopTime = Time processTime = stopTime - startTime If Minute(processTime) < 1 Then resultTime = Second(processTime) & "秒" Else resultTime = Minute(processTime) & "分" & Second(processTime) & "秒" End If startTime = stopTime MsgBox resultTime End Sub
切り出すと、以下のようになります。
↓計測開始
' 時間計測開始 Dim startTime, stopTime, processTime, resultTime As Variant startTime = Time
↓計測終了
' 時間計測終了 stopTime = Time processTime = stopTime - startTime If Minute(processTime) < 1 Then resultTime = Second(processTime) & "秒" Else resultTime = Minute(processTime) & "分" & Second(processTime) & "秒" End If startTime = stopTime MsgBox resultTime
ポイント
メッセージに表示する文字列はIF文の中で生成しています。
ここは任意に変更しても構いません。
また、メッセージボックスに表示するのではなく、シートに書き込みを行う場合は最下行のmsgboxの部分を
修正前:MsgBox = resultTime
修正後:Range(“A1”) = resultTime
等に変更すると、書き込みができます。
さいごに
みなさんが作っているプログラムを実行したときに「すごい時間かかるなー、このコード」と思った時に処理時間を計測して、何か対策を打った方がよいと思います。
このコードも使ってもらえると嬉しいです!
ではまた!