Microsoft 製品に組み込まれている Visual Basic の実装。
Application.ScreenUpdating = False
10秒ほどかかる大量の「Selection.Find.Replacement」を利用する処理
Application.ScreenUpdating = True
でなるVBAを実行させると、
1、実行中にWordのステータスバーの表示が停止されない(VBA処理の高速化を目的とする画面更新の停止がステータスバーまで効いていないという点ではバグではないか?)
2、処理が終了しWordに戻ってきたときに、IMEが無効となることがある。
2、処理が終了しWordに戻ってきたときに、「IMEが無効となる」と「IME小窓が出現する」以外にWordの「挿入モード」が「上書きモード」に勝手に変わる現象が出現しました。
VBAから「Application.ScreenUpdating」を外して実行して、判明したことを記載します。
Application.ScreenUpdatingを利用するか否かに関わりなく
WordのVBAで「置換のマクロ」を131回繰り返し(普段はもッと繰り返している)実行したことでこの現象が再現しました。
「Selection.Find」を使わずに下記のような使い方をするとステータスバーに情報が表示されなくなることを知り、やってみました。上記の現象が再現しなくまりました。
Set myRange = ActiveDocument.Content
With myRange.Find
.Text = "a"
.Replacement.Text = "A"
End With
myRange.Find.Execute Replace:=wdReplaceAll