なぜ業務において「時間の計測」が重要なのでしょうか?
日々の業務の中で、ご自身の成果をどのように数値化されていますか?
「マクロを導入して便利になりました」と報告するよりも、「手作業で30分かかっていた作業が、マクロなら3.5秒で完了します」と具体的な数字を提示する方が、その価値は圧倒的に伝わりやすくなりますよね。
この客観的な指標を手軽に実現する方法が、VBAの標準機能であるTimer関数の活用です。
Timer関数の仕組み:デジタルなストップウォッチ
Timer関数の概念は非常にシンプルで、身近なストップウォッチと同じだと考えてください。
この関数は、「今日の午前0時ちょうどから、現時点までに何秒経過したか」を取得する役割を持っています。 処理時間を算出するロジックは、以下の3ステップだけです。
- 開始時刻の記録:処理を始める直前の秒数をメモします。
- 処理の実行:計測したいマクロの処理を走らせます。
- 終了時刻の記録:処理が終わった直後の秒数をメモします。
計算式は以下の通りです。
経過時間 = 終了時刻 – 開始時刻
【コピペOK】処理時間を計測するためのサンプルコード
以下のコードを標準モジュールにコピーして、実際の動作を確認してみてください。
Sub MeasureTime()
' 変数の宣言(小数点以下も扱うためDouble型を使用します)
Dim startTime As Double
Dim endTime As Double
Dim processTime As Double
Dim i As Long
' 1. 計測開始時刻を記録
startTime = Timer
' === ここから計測対象の処理 ===
' 例:1000万回のループを実行(意図的に負荷をかけています)
For i = 1 To 10000000
' 処理内容
Next i
' === ここまで計測対象の処理 ===
' 2. 計測終了時刻を記録
endTime = Timer
' 3. 経過時間を計算
processTime = endTime - startTime
' 4. 結果を小数点第2位まで整えて表示
MsgBox "処理が完了しました。" & vbCrLf & _
"実行時間: " & Format(processTime, "0.00") & " 秒", vbInformation, "計測結果"
End Sub
ちなみに私のPCでは0.03秒でした。
1億回にしてみたところ、0.26秒でした。PCの計算力って改めてすごいですね。
実装のポイントと解説
- startTime = Timer:コードが実行された瞬間の正確な時刻を取得し、変数に保存します。
- Format(processTime, “0.00”):コンピュータが算出する細かな数値を、小数点第2位までに丸めることで、報告資料などにもそのまま使える見やすい形式に整えています。
明日から使える活用術
もしあなたが業務改善ツールを作ったら、ぜひこのTimer関数を仕込んでみてください。
処理が終わった際に「実行時間:0.52秒」といったメッセージが表示されるだけで、そのツールがどれほど効率的なのかが誰の目にも明らかになります。
また実務だと、パフォーマンスを客観的に把握できるため、業務のスケジューリングも立てやすくなるはずです。
プログラムによる劇的な速度向上を数値で実感することは、開発の大きな喜びであり、自身の専門性を証明する強力な武器にもなります。 ぜひ試してみてください!
VBAを独学で学び、業務自動化に5年以上携わってきた私が、「本当に実務で役立った!」と感じた2冊を紹介します。 もう本選びで失敗したくない方は、よければ参考にしてみてください。

コメント