★0 はじめに
最近VBAの仕事で普通の文字列結合を
「&」で結合したらばりばり遅いということを知り、
「1234」という文字を100万回結合して時間を測定する実験を行った。
★1 &でつなげるとまじ遅い、以下の100万ループは30分かかった
Sub Macro1()
Dim kaishi As Single
kaishi = Timer
Dim a As Long
Dim sq As String
For a = 1 To 1000000
sq = sq & "1234"
Next a
MsgBox "処理にかかった時間は" & Round(Timer - kaishi, 1) & "秒です。"
End Sub
★2 JOINでやった場合、1秒で終わった。(midの方がもっと速いらしいけど)
Sub Macro1()
Dim kaishi As Single
kaishi = Timer
Dim a As Long
Dim ss() As String
Dim sq As String
For a = 1 To 1000000
ReDim Preserve ss(a - 1)
ss(a - 1) = "1234"
Next a
sq = Join(ss, "")
MsgBox "処理にかかった時間は" & Round(Timer - kaishi, 1) & "秒です。"
End Sub
★3 参考資料