VBAはじめ、手続き型言語というのはデータの先頭から最後のデータまでループを繰り返しながら処理します。そのためデータ数に応じてレスポンスが悪くなることが避けられません。
高速化のためには時間の計測をすることが第一歩です。まずは時間計測の方法を紹介します。
ソースコード
Option Explicit
Sub test_proc()
Dim startTime As Double
Dim endTime As Double
Dim responceTime As Double
startTime = Timer
'メイン処理
Dim i As Long: i = 1
Do Until Cells(i, "A").Value = ""
i = i + 1
Loop
endTime = Timer
responceTime = endTime - startTime
MsgBox (responceTime & "秒")
End Sub
時間計測を実行してみる
今回、(内容に特に意味はないのですが)150行ほどのデータを上から下まで読んでみるコードで速度を計測してみます。
結果が測定できました。
コメント