VBAスクリプトの実行にかかる時間をどのように取得しますか?PHPから、この値との差を計算できるようにするために、スクリプトの前に1回、後に1回呼び出されるmicrotime()のようなものがあることを知っています...
VBAに相当するものはありますか?
VBAスクリプトの実行にかかる時間をどのように取得しますか?PHPから、この値との差を計算できるようにするために、スクリプトの前に1回、後に1回呼び出されるmicrotime()のようなものがあることを知っています...
VBAに相当するものはありますか?
これは、スクリプトのパフォーマンスを一時的に測定するためにVBAプロジェクトの1つで使用したサンプルコードです。
また、スクリプトのパフォーマンスを最適化するための十分なリソースを見つけることができます
Public Sub generate(ByRef generators() As Generator)
Dim startTime As Double
OptimizePerformance doc
'/////////////////below is the line that matters
startTime = Timer
'////////// your code that is to be measured (in time) here //////////
MsgBox Format(Timer - startTime, "00.00") & " seconds"
removeOptimization doc
End Sub
Timer()
真夜中からの時間を秒単位で返すという関数があります。ミリ秒を含みます。VBAのマイクロ秒の解像度タイマーを知りません。
About.comの記事によると、VBAから直接Win32 API呼び出しを行うことで、独自のマイクロタイマーを作成できます。
より正確なタイミング情報が必要な場合は、次のいずれかの関数を使用して開始時刻と終了時刻を取得することをお勧めします
#If Win64 Then
Private Declare PtrSafe Function GetTickCount Lib "kernel32" () As LongLong
Private Declare PtrSafe Function timeGetTime Lib "winmm.dll" () As LongLong
#Else
Private Declare Function GetTickCount Lib "kernel32" () As Long
Private Declare Function timeGetTime Lib "winmm.dll" () As Long
#End If
システムによっては、より正確な情報を返す必要があります。個人的には、Win764ビット/Office2010/201332ビット環境で私は好みますtimeGetTime
の絶対値のtimeGetTime
使用は推奨されていませんが、DIFFERENCE(endTime-startTimeなど)はミリ秒単位の非常に正確な値であることに注意してください。