【ExcelVBA入門】処理時間を計測するためのTimer関数の使い方とは

皆さんは、VBAで処理時間を計測する方法を知っていますか?

VBAを書いていると処理が重たくなるケースがよくあるため、処理時間を計測する方法を知っておくと便利です。そこで今回は、

  • 処理時間を計測するためのTimer関数の使い方
  • Timer関数を使った具体的なサンプルコード
  • Timer関数を使って処理を高速化する方法

といった基礎的なことから、応用的な方法まで、徹底的に解説します!

Timer関数の使い方

最初に、Timer関数の使い方について簡単に解説します。

使い方:

実行すると、戻り値として午前0時0分0秒からの経過時間を取得できます。処理時間を計測するときは、以下のように開始時終了時にTimer関数を使って以下のように使います。

開始時、終了時にTimer関数を使って時間を計測し、終了時間から開始時間をひくことで、時間を計測しています。このように、簡単に処理時間を計測することができます。

サンプルコード

次に、サンプルコードをもとに、具体的な使い方を解説します。

サンプルコード:

画像:実行結果

このように簡単に計測することができます。

Timer関数を使って処理を高速化する方法

ここまでTimer関数を使った処理時間の計測方法を解説してきました。

ただ、処理を高速化するためには、どの処理が遅くなっているか確認する必要がありますよね。1行ずつ実行にかかった時間計測するためには、Debug.Printを使ってイミディエイトウィンドウに時間を出すのがおすすめです!

サンプルコード:

実行結果:

結果を見てみると、メイン処理2が遅いことがわかります。

メイン処理2では、「コピー元セル選択 → セルコピー → コピー先セル選択 → 貼り付け」の流れになっていますが、セルのコピー・ペーストは以下のように1行に変更することで、処理を高速化することができます。

改善後のコードサンプル:

実行結果:

このように、細かく処理を分解して計測時間を確認する方法を知っておくだけで、原因を調べて対応することができます。

この方法以外にも、処理高速化テクニックについては以下で詳しくまとめているので、気になる方は見てみてくださいね!

【ExcelVBA入門】処理の実行時間を高速化する方法を徹底解説!
更新日 : 2018年8月29日

補足:日付を扱う方法

Timer関数は処理時間計測時にはとても便利ですが、値がシリアル値になっているため時刻としては使えません。

時刻を確認したい場合は、Format関数Now関数を組み合わせて以下のように書くのがおすすめです!

日付・時刻の取得方法については以下で詳しく解説しているので、気になる方は見てみてくださいね!

【VBA入門】日付を扱う方法(取得、書式変換、比較、計算、チェック)
更新日 : 2019年4月21日

まとめ

今回は、VBAで処理時間を計測するためのTimer関数の使い方について解説しました。ちょっと処理が重たいなと感じたときは、Timer関数を使って処理時間を確認してみるのがおすすすめです。

使い方も簡単なので、ぜひ使ってみてくださいね!

Excel VBAを最短で習得したい方へ

元々ITリテラシーの高い方やプログラムの学び方がわかっている方であれば、この記事通りに進めていけば、Excel VBAを独学で習得することができるでしょう。

ただし、実際の学習期間中はつまづいている時間がほとんどです。

「なかなかやり遂げられ無い、挫折してしまった」
「時間が足りない」
「情報が少なくどう調べればいいかわからない」
「エラーを解決することができない」

このような悩みを抱えている方も少なく無いと思います。

  • もう挫折したくない
  • 本業と両立しながら、好きな時間で自分のペースで勉強を続けていきたい
  • 自分だけのカリキュラムで効率的に勉強したい
そんな方はお気軽に侍エンジニア塾までご相談ください。

お一人お一人に専属のインストラクターがつくので、より深くExcel VBAについて学習することできます。

まずは『無料体験レッスン』で、弊社のコンサルタントと一緒にあなた専用の学習方やカリキュラムを考えてみませんか?

Excel VBAならではの学習方法や、現役エンジニアから貴重なアドバイスを受けることができます。

詳しくは下の画像をクリックして弊社サービス内容をご確認ください。

cta2_vba2

LINEで送る
Pocket

書いた人

Sanshiro Wakizaka

Sanshiro Wakizaka

フリーランスエンジニア兼ライターのワキザカ サンシロウです。
ExcelVBAの自動化ツール開発、WEB開発をメインにエンジニア業務をこなしつつ、サムライエンジニアにてライター業務をしております。

プログラミングをこれからやってみたい方に向けて、ためになる記事を全力で書いていきますので宜しくお願い致します!

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説