LoginSignup
0
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:

0
0
0

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
  3. You can use dark theme
What you can do with signing up
0
0