もくじ

taka



最新記事 by taka (全て見る)
- 『雑記』最近の私の話~ - 2019年9月26日
- 【動画】自作パソコン構成変更!ケースをNZXT H500に交換しました! - 2019年6月5日
- VBA 『Array関数』指定した要素で配列を作成する - 2019年5月23日
- 「動画」初完全ワイヤレスイヤホン『Jabra Elite Active 65t』 - 2019年5月17日
- VBA 日付で令和を簡単に判定してみよう - 2019年5月7日
どうも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フォロー
Follow @taka_pc1027■YouTubeチャンネル登録
コメントを残す