背景
特定のシートだけを再計算させたくない場合がある。この場合,該当シートのEnableCalculationプロパティをFalseに設定すればよいが,どのようなときに再計算されるのか,または再計算されないのかを検証した。
検証環境
Excel 2013(64bit) + Windows 10 Pro(64bit)CPU: Core i7 2.4GHz
RAM: 16GB
仮想メモリ: OFF
検証方法
以下の手順で検証した。- Sheet1のA1セルにRAND関数を入力する。
- Sheets("Sheet1").EnableCalculation = False を実行する。
- 以下の再計算メソッドを1個ずつ実行し,再計算されるかどうかを確認する。
- 手動でF9キーを押す。
- Range("A1").Calculate
- Sheets("Sheet1").Calculate
- Application.Calculate
- Application.CalculateFull
- Application.CalculateFullRebuild
結果
上記のすべての方法で,再計算されなかった。再計算させるには,Sheets("Sheet1").EnableCalculation = True を実行するしかない。
https://msdn.microsoft.com/JA-JP/library/ff841201.aspx に書かれている
このプロパティが False の場合、シートの再計算を要求できません。False から True に値を変更すると、シートの再計算を実行します。
の具体的な意味はこういうことである。 こういう具体的なことがヘルプに書いてあれば助かるのだが,いちいち自分で検証せねばならん。
なお,ファイルを開き直すと, EnableCalculation はTrueに毎回設定されるので,Falseにしたい場合はWorkbooks_Openイベントを使う必要がある。
0 件のコメント:
コメントを投稿