VBA【GetTickCount関数(API)】で処理の時間を取得する



The following two tabs change content below.
アバター

taka

あることがキッカケでVBAを独学で勉強しました、今ではブログを通してVBAでできることを解説しつつ、VBAや他の言語の勉強、ブログ運営の勉強をしています(^^♪

どうもtakaです(^^♪

さて、今回はWindowsAPIを使用してVBAの処理時間を取得する方法をご紹介します(^^)/

まぁあまり必要性はないかもしれませんが、高速化を目指すときには便利なので知っておくといいかもしれません(^.^)

※今回はAPIを使用しますのでAPIの使用ルールを守ってお使いください。
VBAでAPIを使う方法】はこちら

GetTickCount関数とは?

今回はGetTickCount関数を使用します、GetTickCount関数は本来【パソコン(Windows)を起動してからの時間】を【ミリ秒】で返す関数です。

GetTickCount関数はAPIを使用したもので敷居が高いと思われがちですがそんなこともありません。しっかりと使い方を知っておけば普通の関数と何ら変わらずにす要することができます(^^♪

GetTickCount関数の使い方

では早速詳しい使用方法について解説をしていきます、

まずVBAでAPIを使用する場合、APIを使用することをモジュール内で宣言しなければいけません。
※APIの宣言はモジュールの一番上でしなければいけません

 Private Declare Function GetTickCount Lib "Kernel32" () As Long

下記の画像のように普段プログラムを記述する部分の一番上に挿入することによって効果を発揮します。

宣言しなかった場合はエラーになりますのでお忘れなく。

GetTickCount関数の書式

GetTickCount関数の書式は以下通りです。

 GetTickCount

GetTickCount関数はパソコン(Windows)を起動してからの時間が返す関数です。

なので↓のコードを実行するとパソコン(Windows)を起動してからの時間が返されます。

 Private Declare Function GetTickCount Lib "Kernel32" () As Long
 Sub sample()

 MsgBox "  Windowsを起動してから" & GetTickCount & "ミリ秒"
 
 End Sub

GetTickCount関数でVBAの処理時間を取得

続いて、実際に処理時間を取得してみましょう。

今回はプログラムの処理時間を取得するのが目的ですので、スタートとゴールを決めてその差し引きを求めるて処理にかかった時間を表示させるプログラムを用意する必要があります。

GetTickCount関数で計測スタート時の値(パソコンを起動してからの時間)を変数【Start 】に格納し、計測終了時の値を変数【Goal】に格納。

それぞれ変数【Start 】と変数【Goal】の差し引きを求めることで処理にかかった時間を求めることができます ^^) _旦~~

注意点
GetTickCount関数はミリ秒(ms)で返すので秒(s)単位で取得したい場合は÷1000をする必要があります。
 Private Declare Function GetTickCount Lib "Kernel32" () As Long
 Sub sample()
 
 Dim Start As Long
 Dim Goal As Long
  Start = GetTickCount '測定スタート
 
 '処理------------------
 Range("A1:F10000").Value = "E-VBA.com"’セルA1からF10000に【E-VBA.com】を入力する
 '処理終了------------------
  Goal = GetTickCount '測定終了

  MsgBox (Goal - Start) / 1000 & "秒" '測定結果

 End Sub

 

フォロー・チャンネル登録お願いします

VBA以外についてのブログはこちら↓

https://yb-log.com/

■Twitterフォロー

■YouTubeチャンネル登録

ファイルやコードの利用、WEBサイトの利用について

サンプルコードなどは当サイトの免責事項をよくお読みになってからお使いください。

Sponsored Link

 

WordPressでブログを始めるなら

WordPress簡単インストール&安心の安定性

レンタルサーバー Xserver

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です