検索

キーワード


目次

【Excel VBA】Timerでマクロの処理の実行時間を計測する方法

  • 公開日:2020-12-07 12:48:38
  • 最終更新日:2021-03-03 22:54:11

Workteria(ワークテリア)では難易度の高いものから低いものまで、スキルや経験に合わせた案件を多数揃えています。会員登録は無料ですので、ぜひ会員登録してご希望の案件を探してみてください!

フリーランス/正社員のエンジニアとして活躍するには、ご自身のスキルや経験に合わせた仕事を選ぶことが大切です。ご希望の案件がみつからない場合はお気軽にお問い合わせください!ユーザ満足度の高いキャリアコンサルタントが在籍していますので、希望条件や悩み事などなんでもご相談ください。ご希望にピッタリの案件をご紹介させていただきます。

はじめに

IMMRです。

作成したマクロの処理時間を計測したい時ってあると思います。


例えば、下記のように処理開始ボタンを押して、

処理が完了したメッセージが表示されるまでどれくらいの

時間がかかるかを計測したい時、あなたならどのようにしますか。


処理開始のボタンを押す。


図1 ブック(処理前)

処理前


処理が終了して、メッセージが表示される。


図2 ブック(処理後)

処理後


処理開始ボタンを押して処理を実行し、「処理終了」と表示されるまでの時間ですが

処理内容によって時間は変わります。(当然のことですよね)

プログラムによっては、一瞬で終わるもの、数分掛かるもの、30分以上かかるもの それぞれです。



マクロの処理時間を計測する方法として、

1つは、下記のようにパソコン上で時計を表示して、「処理終了」と表示するまでの時間を計測します。


図3 ブック(時間計測)

時間計測


これは、とても非効率な方法です。

これだと、何時に終了したかの確認も必要なのでずっとパソコンの前にいなくてはいけません。


そのため、もっと簡単に効率よく計測できる方法を紹介します。


1.処理時間を計測する方法について

マクロの処理時間を計測するしたい場合、

Timer()関数というものがあり、これを使用すると簡単に処理時間を計測出来ます。


Timer()関数は、当日0時からの経過時間を秒数で返します。

もし、16:00に実行すると57600.0という数値が返ります。

※60(秒)×60(分)×16 = 57600.0 です。


型は秒という数値なので、long、Single、Doubleなどで問題ありませんが、

0コンマ秒等精密に計測したい場合は、Single以上が必要です。


ストップウォッチのように時間を計測するのではなく、

処理開始時のTimer

処理終了時のTimer

を計測して、

Timer(処理終了時) ー Timer(処理開始時) = 処理にかかった時間

という形で計測します。


図4 Timerを使っての処理時間を計測する方法

時間計測イメージ



2.サンプルコード(処理時間を計測する)


処理時間を計測するサンプルコードは以下になります。

サンプルコード

Private Sub CommandButton1_Click()

    Dim Syo_Time As Single

    Syo_Time = Timer

処理

    MsgBox Timer - Syo_Time & " かかりました。"

End Sub


まず、処理開始する前、syo_Time(変数)にTimerの値をセットします。

処理が完了したら再び、Timerの値を取得して、先ほど取得したsyo_Time(変数)との差を調べます。

この差が処理時間になります。


※ボタンを使用しているので、プロシージャー名が「Private Sub CommandButton1_Click()」になっています。


3.理時間を計測する処理の実行

では、ボタンを作成してから

上記、コードを記載し、処理時間が計測できるか実行して確認してみます。


図5 ブック(処理前)

処理前

ボタンを押して、しばらく待つと

下記のように処理にかかった時間が表示されます。

図6 ブック(上記、コード実行後)

処理後


この処理では、約293秒と表示されました。

つまり、処理時間は、4分53秒かかったことになります。


処理時間が正しく計測出来ていることが確認出来ます。


【著者】

Imamura

「挑戦心」を忘れずに、新しいことにチャレンジしています。 資格:VBAエキスパート Excel VBA(ベーシック/スタンダード) 等

編集した記事一覧

正社員/フリーランスの方でこのようなお悩みありませんか?

  • 自分に合う案件を定期的に紹介してもらいたい
  • 週2、リモートワークなど自由な働き方をしてみたい
  • 面倒な案件探し・契約周りは任せて仕事に集中したい

そのような方はぜひ、Workteriaサイトをご利用ください!

  • 定期的にご本人に合う高額案件を紹介

  • リモートワークなど自由な働き方ができる案件多数

  • 専属エージェントが契約や請求をトータルサポート

よく読まれている記事