HOME > 即効テクニック > Excel VBA > その他関連のテクニック > VBEのコードウィンドウの色を設定する(レジストリ操作)

VBEのコードウィンドウの色を設定する(レジストリ操作)|Excel VBA

その他関連のテクニック

VBEのコードウィンドウの色を設定する(レジストリ操作)

(Excel 2000/2002/2003/2007/2010)

コードウィンドウは、背景色が白、「標準コード」は黒、「キーワード」は紺、「コメント」は緑がおなじみの色ですね。またステップ実行時に1行ずつ選択される「次のステートメント」は黄色、「構文エラーの文字」は赤で表示されます。これが既定です。

この文字の色や背景色、フォントの種類やサイズは、[オプション]ダイアログボックスの[エディターの設定]タブでカスタマイズできます。[オプション]ダイアログボックスはVBEの[ツール]メニュー→[オプション]から表示します。

コードウィンドウの配色を好みの色に変えるのに、[オプション]ダイアログボックスでそれぞれの前景色や背景色を設定してもいいですが、1つ1つ設定するのはちょっとめんどうです。
また設定変えた後、簡単に既定に戻す方法も知っておきたいですね。
ここでは、レジストリエディターを使って、コードウィンドウを簡単に"お着替え"する方法をご紹介します。

■VBEの設定を保存するレジストリ

Windowsに標準で付属しているレジストリエディターを起動します。
[スタート]メニュー→[ファイル名を指定して実行]に「regedit」と入力します。

VBEの設定は[HKEY_CURRENT_USER\Software\Microsoft\VBA\7.0\Common]キーの中に保存されています。左側のペインでツリー階層をたどっていくと確認できます。
(Excel 2007以前のバージョンでは、ツリー構造の[\VBA\7.0]の部分が[\VBA\6.0]になります)

Excelをインストールした直後は、このキーには何もエントリがない状態です。

VBEを起動したり、イミディエイトウィンドウやツールバーを表示したり、コードウィンドウの配色を変更したりすると、その設定を保存するためのエントリがExcel終了時に作成されます。そして、次回起動時にはそのエントリを参照して前回と同じ設定で表示する、という仕組みになっています。

[HKEY_CURRENT_USER\Software\Microsoft\VBA\7.0\Common]キーのエントリのうち、[CodeBackColors]値と[CodeForeColors]値がコードウィンドウの配色を保持するエントリです。
一度でも色の設定を変えたことがある場合、
[HKEY_CURRENT_USER\Software\Microsoft\VBA\7.0\Common]キーの配下に作成されます。
もしこれらのエントリがなかったら、VBEの[オプション]ダイアログボックスで、いずれかの色を変更してからExcelを終了し、レジストリエディターで[F5]キーを押してみてください。2つのエントリが作成されているはずです。

■コードウィンドウの配色を変える

[CodeBackColors]値と[CodeForeColors]値を使用して配色を変更します。
Excelが参照するレジストリを操作するので、あらかじめExcelを終了しておきます。

変更の前に現在の配色を保存しておくには、右側のペインで[CodeBackColors]値を右クリック→[修正]を選択して[文字列の編集]ダイアログボックスを表示します。
[値のデータ]に表示されている数字の羅列をテキストエディタなどにコピーしておいてください。[CodeForeColors]値も同様にします。

または、[CodeBackColors]値を右クリック→[名前の変更]を選択し、末尾に「_bkup」など適当な文字列を追加して名前を変更してもよいでしょう。その場合は、この後で[CodeBackColors]値と[CodeForeColors]値を使用するので、VBEでコード色を変更する操作をしてからExcelを終了し、新たにエントリを作成してください。

では、コードウィンドウをチョークで書かれた黒板のような配色にしてみましょう。

●「黒板」モード●

右ペインで[CodeBackColors]値を右クリック→[修正]を選択して、[文字列の編集]ダイアログボックスを表示します。そして[値のデータ]に次の文字列を上書きします。

12 0 0 7 6 12 12 12 0 0 0 0 0 0 0 0

同様に[CodeForeColors]値も[値のデータ]に次の文字列を上書きします。

1 0 5 0 1 2 7 1 0 0 0 0 0 0 0 0

1つ1つ[オプション]ダイアログボックスで設定する代わりに、レジストリエディターを使って一括設定するわけです。
VBEを起動し、コードを記述してみましょう。配色が変わったことを確認できます。

この2つのエントリを操作することで、いろいろな配色を簡単に設定できます。
いくつかの配色パターンをご紹介します。

●「ホワイトボード」モード●

[CodeBackColors] 1 0 0 7 6 1 1 1 0 0 0 0 0 0 0 0 
[CodeForeColors] 14 0 5 0 1 12 5 4 0 0 0 0 0 0 0 0

●「サンド」モード●

[CodeBackColors] 2 0 0 7 6 2 2 2 0 0 0 0 0 0 0 0 
[CodeForeColors] 1 0 5 0 1 8 1 7 0 0 0 0 0 0 0 0

●「マトリックス」モード●

[CodeBackColors] 4 0 1 7 6 4 4 4 4 4 0 0 0 0 0 0 
[CodeForeColors] 9 0 15 0 1 2 1 9 9 7 0 0 0 0 0 0

●「マコ」モード●

[CodeBackColors] 1 0 0 7 6 2 1 1 0 0 0 0 0 0 0 0  
[CodeForeColors] 2 0 5 0 1 3 15 3 0 0 0 0 0 0 0 0

■コードウィンドウの配色を既定に戻す

前述のように、既定の状態では[HKEY_CURRENT_USER\Software\Microsoft\VBA\7.0\Common]キーの配下に[CodeBackColors]値と[CodeForeColors]値はありません。
つまり、これらのエントリがない状態にすれば、既定の配色に戻ります。

レジストリエディターの右側のペインで、これらのエントリを右クリックメニューから削除するか、現在の設定をバックアップしたときの手順で名前を変更すると、コードウィンドウの配色を既定に戻すことができます。

ちなみに、既定の配色の[CodeBackColors]値と[CodeForeColors]値は次のとおりです。
[文字列の編集]ダイアログボックスで以下を上書きしてもOKです。

[CodeBackColors] 0 0 0 7 6 0 0 0 0 0 0 0 0 0 0 0 
[CodeForeColors] 0 0 5 0 1 10 14 0 0 0 0 0 0 0 0 0

●補足●

ここで操作したレジストリキーは[HKEY_CURRENT_USER\Software\Microsoft\VBA\7.0\Common]です。キーの名前に「Common」とあるように、この設定はExcel VBAだけでなく、AccessやWordなど他のアプリケーションのVBEにも反映されます。