和風スパゲティのレシピ

日本語でコーディングするExcelVBA

VBE(コードを書く画面)の文字/背景色を変更する

Excelマクロを作るとき、コードを書く画面のことをVBEと呼びます。

EはEditorのEで、そのままエディタってことですね。


このVBEはいろいろと設定を変えることができ、

VBE

こんな風に背景色を黒にしたりもできます。

  • Excelが白/VBAが黒で、ウィンドウの見分けがつきやすい
  • 注視しがちなコード画面の光量が減って、目が疲れづらい
  • 眠い時に目を閉じても、画面が黒いと熟考中っぽい

あたりがとても便利ですね。


また、VBEの初期フォントは「MS ゴシック」なのですが、
昔は主流だったこのフォントも、今は大分見かけなくなって見づらいです。

これも好きなフォントに変えてしまいましょう。


変更するのは簡単で、

オプション
エディタの設定

と、「ツール → オプション → エディターの設定タブ」をいじるだけです。

フォントの設定

まずは簡単なフォントですが、これは好きなものにしてください。


Excelで「ファイル → オプション → 全般タブ」にある、

新しいブックの作成時

この設定で「ワークシートの初期フォント」をいじれますので、
これと全く一緒にするのがおススメです。

背景色・文字色(シンタックスハイライト)

背景色と文字色の設定ですが、

If Cells(R, C) >= 1000 Then

↑このようにVBEには、コードの種類によって文字を色分けする機能がついています。

これをシンタックスハイライトと呼びます。


エディターの設定を見ると↓

エディタの設定


「コードの表示色」欄にハイライトできるコード種類がいろいろあって大変そうですが、背景色を変えるときにいじるのは、とりあえず↓だけでOKです。
 

コードの種類 意味 前景色(例)
標準コード ベタ打ちの数字や文字
構文エラーの文字 書きかけのコードや構文エラー ピンク
コメント ' コメント 黄緑
キーワード Sub、Dim、If、Thenなどの構文 水色
識別子 関数や変数のこと(備え付け・自作どちらも)


これらの背景色はすべて同じするべきなので、全部黒でいいでしょう。

背景色を黒、文字色(前景色)を着色例にすると、こんな感じになります↓


シンタックスハイライト例


注意点として「標準コード」というのがありますが、
コード内はほとんどが「変数や関数」で書かれるため、
どちらかというと「識別子」の方が標準の色になる
と思ってください。

なので、これを白にするのが良いでしょう。


あとは、構文系は青になっている言語が多いので、キーワードは青か水色

エラー時の色は、エラーが出たときに見ることはあまりなく、
サンプルのような書きかけコードの色としてよく見ることになるので、
赤よりは控えめにピンクにするのがいいかなと思います。


好みが出るのはコメントですね。

コメントの使い方は主に2種類あり、

' 条件をクリアしたデータの処理
If Cells(R, C) >= 1000 Then
    Cells(R, C + 1) = "処理済"
If Cells(R, C) >= 1000 Then ' この条件は年ごとに見直し
    Cells(R, C + 1) = "処理済"

と、「ブロックの見出し」的な使い方と、「コードの注釈」的な使い方があります。
 

  • 前者の「見出し」なら目立つ明るい色(黄緑)
  • 後者の「注釈」なら目立たない色(濃いグレー)

あたりがおすすめなので、自分で書くコメントがどっちが多いかで決めるといいです。


私はほとんどのコメントが「ブロック見出し」なので黄緑にしています。



こんな感じでコード画面の色を自分の好みにカスタマイズしておくと、
少しですが確実にコーディングがやりやすくなります。


好みのセッティングを試してみてください。



余談ですが、

Function テスト関数(ByVal 引数 As Long) As Long

    ' 条件をクリアしたデータの処理
    If Cells(R, C) >= 1000 Then
        Cells(R, C + 1) = "処理済"
        Cells(R, C + 2) = ""

↑このように、本ブログのコードは↑のおすすめ配色と同じ色になるように、
頑張って設定しました(`・ω・´)b


Twitterを見ていると、おそらくこの設定がマジョリティっぽいので、
みなさんのVBEと似た配色になって、読みやすくなっていると嬉しいです。

おまけ:標準コードのハイライトの活用法

標準コードの色は、識別子の色と合わせて白にしてもいいのですが、
これも別色(例では黄色)でハイライトしておきましょう。

例えば、

If Cells(R, C) >= 1000 Then ' この条件は年ごとに見直し
    Cells(R, C + 1) = "処理済"

↑こういうコードで、年ごとにこの部分を探して書き換える目印になります。


ロジックは変えずに設定値だけ変更する場合は、
黄色い部分だけを書き換えていけばいい
わけですからね。


さらにもう少し工夫すると、
「年ごとの改修ですべてのコードの中身を見て回る」のは大変なので、

' 各種定数(モジュールの最上部に置いておく)
Public Const 処理済条件 = 1000
Public Const 完了表示 = "処理済"
~~~~~

' マクロ内では値をべた書きせずに、定数を使ったコードにする
If Cells(R, C) >= 処理済条件 Then
    Cells(R, C + 1) = 完了表示

↑こんな風に、変更の可能性がある値を定数にしておくと便利です。


このコードを見てわかるように、しっかりと定数化ができたコードは、メインコードは真っ白になります。


メインコードが白いコードであるほどメンテナンス性のいいコードという、
一種のバロメータだと思ってもいいかもしれません。


コード中にたくさん出てくる「1000」を全部書き換えて回った経験をお持ちの方は、こんな使い方があるんだな~と知っておくといつか役に立つと思います。

心の片隅にでも、おいておいてください。