Excel vba 【特定のシートを表示したときだけオートコンプリートをonにする】
いつも邪魔くさいオートコンプリートは結構offにしている人が多いと思うけど、あるシートだけはonにしたいってケースがあったのでメモ。
オートコンプリートをonにしたいシートにWorksheet_ActivateイベントとWorksheet_Deactivateイベントを使い、Application.EnableAutoCompleteの値を切り替える。
準備として宣言セクションに元のオートコンプリートの設定値を保存する。
モジュールレベルのグローバル領域に変数acを記述し、acにシートを表示する前の設定値を保存しておき、シートが表示されなくなったらEnableAutoCompleteの設定をacに戻す。
こんな感じ。。。
Option Explicit Private ac As Boolean Private Sub Worksheet_Activate() ac = Application.EnableAutoComplete Application.EnableAutoComplete = True End Sub Private Sub Worksheet_Deactivate() Application.EnableAutoComplete = ac End Sub
こうすることでサブルーチンやイベントをまたいでも変数を保持していられ、元の設定値を変えないままオートコンプリートをonにできる。