今回はエクセルVBAについて記載させていただきます。
計算式が大量に含まれているエクセルに対してVBAで操作した時に速度が重くなって処理が進まないという事があります。
こういう時には一時的に自動計算をOFFにする事で速度が改善されます。
よく使う方法としてはマクロの開始時にOFF、終了時にONにするという方法です。
以下は使用例です。
----------------------------
Sub Test
‘自動計算をOFF
Application.Calculation = xlCalculationManual
‘処理を記載
‘自動計算をON
Application.Calculation = xlCalculationAutomatic
End Sub
----------------------------
これだけでかなり改善されます。
ただ一つ気を付けないといけない点があります。
それは自動計算をOFFにしている状態でファイルを保存しないという点です。
ONにする前にファイルを保存してしまうと保存したファイルを開く時に自動計算がOFFになってしまいます。
以下は失敗した時の例です。
----------------------------
Sub Test
‘自動計算をOFF
Application.Calculation = xlCalculationManual
‘ファイルを開く
Workbooks.Open “C:\test.xlsx”
‘処理を記載
‘ファイルを保存して閉じる
Workbooks(“test.xlsx”).Save
Workbooks(“test.xlsx”).Close
‘自動計算をON
Application.Calculation = xlCalculationAutomatic
End Sub
----------------------------
これにより次に「test.xlsx」を開いた時には自動計算がOFFになっていて計算が更新されない状態になっていました。
このまま他のマクロなどで操作した場合に誤った結果になってしまうので是非気を付けて使用してください。