LoginSignup
0

More than 3 years have passed since last update.

Excel VBAで、データを更新するたびに、入力が遅くならないようにしてみた

Posted at

Excel VBAで、データを更新するたびに、入力が遅くならないようにしてみた

数式がいっぱい入っていると、セルのデータを更新するたびに、Excelのワークシートに入力を待たされ、再計算が走って、次のデータを入れらないことがある。

データを連続で入れたいときに、別にその都度計算がいらない時もあって、最後に一気に数式の更新ができればいいときもある。

Excelで、その時に、[ファイル]→[オプション]で、計算方法の設定にある ブックの計算で、手動を選べばいいが、何かのたびに設定を変えていると、戻し忘れたりする。

シートでデータを一気に入れたあとに、数式の結果更新ができればよかったので、マクロ簡単にできないかなと。
作業するワークシートを表示したまま、再計算を無効にすることができれば、操作が楽になると考えた。

シートの準備

あまり凝った作りにしたくないので、ワークシートのA1セルに ”手動”と表示すると、再計算をしないようにと考える。
プルダウンで ”手動” と選べるようにリストボックスにしてみた。
目線でよく見る”A1”セルを見れば、自動再計算するかしないかの状態もよくわかるし。:relaxed:

では、マクロの作成に入ろうかと

シートで、"A1"セルに”手動”と切り替えたときに、再計算しないようにしたい。

Sheet1
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

と書いたが、このワークブックを閉じるときに、自動計算するように忘れずに戻しておきたいので、

ThisWorkbook
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Application.Calculation = xlCalculationAutomatic
End Sub

と忘れずに書いといた。

これでばっちり!:laughing:

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
0