#Excel VBAで、データを更新するたびに、入力が遅くならないようにしてみた
数式がいっぱい入っていると、セルのデータを更新するたびに、Excelのワークシートに入力を待たされ、再計算が走って、次のデータを入れらないことがある。
データを連続で入れたいときに、別にその都度計算がいらない時もあって、最後に一気に数式の更新ができればいいときもある。
Excelで、その時に、[ファイル]→[オプション]で、計算方法の設定
にある ブックの計算
で、手動
を選べばいいが、何かのたびに設定を変えていると、戻し忘れたりする。
シートでデータを一気に入れたあとに、数式の結果更新ができればよかったので、マクロ簡単にできないかなと。
作業するワークシートを表示したまま、再計算を無効にすることができれば、操作が楽になると考えた。
###シートの準備
あまり凝った作りにしたくないので、ワークシートのA1セルに ”手動”と表示すると、再計算をしないようにと考える。
プルダウンで ”手動” と選べるようにリストボックスにしてみた。
目線でよく見る”A1”セルを見れば、自動再計算するかしないかの状態もよくわかるし。
###では、マクロの作成に入ろうかと
シートで、"A1"セルに”手動”と切り替えたときに、再計算しないようにしたい。
Private Sub Worksheet_Change(ByVal Target As Range)
Select Case Range("A1")
Case "手動"
Application.Calculation = xlCalculationManual
Case Else
Application.Calculation = xlCalculationAutomatic
End Select
End Sub
と書いたが、このワークブックを閉じるときに、自動計算するように忘れずに戻しておきたいので、
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.Calculation = xlCalculationAutomatic
End Sub
と忘れずに書いといた。
これでばっちり!