はじめに
Automation 360の「Excel の高度な操作」に「リアルタイムでの画面更新を無効または有効にする(Disable or enable real-time screen update)」があります。
これを使っているときに少し気になった小ネタです。
なお、「Excelの高度な操作(6.8.0-20220409-020138)」での確認です。今後変わる可能性があります。
どんなときに使うか?
例えば100×100のセルを1つずつ、「Excel の高度な操作: セルを設定」で書き込む場合、標準では1セルずつのデータの書き込みとセルの移動が目に見えます。このオプションを使うと画面の書き換えがなくなり実行時間が半分以下になります。
AA社サイトでの説明は以下。
ただ、このページで「重要: 大きなデータセットを使用する アクション を実行したときにパフォーマンスの問題が発生した場合にのみ、このアクションを使用することをお勧めします。」と書かれているように、使うときに少し注意が必要です。
注意事項
(1)リアルタイム画面更新以外への影響
(a)計算方法の設定(Application.Calculation)が「手動」に代わる
(b)イベントの発生の制御(EnableEvents)が「無効」になる
(b)はそこまで影響ないと思いますが、(a)は「計算式が入っているセルの参照」は注意です。
また「計算方法の設定」は保存されるので、「リアルタイムでの画面更新を無効または有効にする」でDisableのまま「Excel の高度な操作: 閉じる」を実行するとExcelに「計算方法の設定」が「手動」で保存されます。
保存前に忘れずにEnableに戻しましょう。
(2)複数Excel時の注意
「リアルタイムでの画面更新を無効または有効にする」には「セッション名」の指定がありますが、実際にはExcelプロセス全体に対して利いているようです。
そのため複数のExcelを使う場合、開いているExcel全部で「計算方法の設定」が「手動」になります。(Disableにセッション名を指定していないExcelでも)
使うときには、Excelの「開く」「閉じる」と「Disable」「Enable」の切り替えタイミングに注意しましょう。