VBAで数式を用いた外部参照を高速化するコツ
たとえばこのようなVBAがあったとする。
With ActiveSheet
'外部のブックを参照する数式【処理①】
.Cells(1, 1) = "='C:\hogehoge\hogehoge\[hogehoge.xlsx]Sheet1'!$A$1"
'数式を値に変換【処理②】
.Cells(1, 1).Value = .Cells(1, 1).Value
End With
これを繰り返し処理する場合、ブックや参照セルの数が少なければ大きな影響はないが、
ブックが数百個、セルが数十個ある場合などは【処理①】を先に全て終わらせてから、
【処理②】を一括して処理するほうが高速化することがある。
■処理②のVBA例
With ThisWorkbook.Worksheets("Sheet1").Range("A1:Z200")
.Value = .Value
End With
【処理①】と【処理②】を分割し、値への変換を一括処理することで
全体的な処理時間が最大25%ほど早くなる可能性があります。

