VBAを利用しているみなさんは、Excelに付属しているVisual Basic Editor(VBE)を利用して
VBAの入力をされていると思います。
VBEを利用していて、以下のように感じたことはないでしょうか。
- 構文を間違えるたびにポップアップが表示されて、わずらわしい
- エディタが黒文字ばかりで分かりづらい
この記事では、VBAのオススメな設定方法をご紹介します。
- 自動構文チェックを外す
- 変数の宣言を強制させる
- タブ間隔設定
- 構文エラー文字、キーワード、識別子の設定
VBEの初期設定
初期状態のVBEではコメントとエラー以外が全部黒文字になっており使いづらいです
そのままでも使うことはできますが、設定を変更することによってVBAのコーディングの
効率をあげることができます。
おすすめ設定
Excelを起動し、開発タブのVisual BasicをクリックするとVBA Editorが起動します。
「ツール」→「オプション」をクリックします。
編集タブ
オプション画面が表示されます。
初期の状態では下記のようになっています。
自動構文のチェックを外す
「自動構文チェック」のチェックをはずします。
「自動構文チェック」にチェックがついているとVBAの構文にエラーがあるたびに
毎回ポップアップ画面が表示されるのでわずらわしいです。
チェックを外すことにより、ポップアップ画面は表示されなくなります。
変数の宣言を強制する
続いて「変数の宣言を強制する」にチェックをいれます。
「変数の宣言を強制する」にチェックを入れると新しく作成したモジュールの先頭に
自動的にOption Explicit文が挿入されます。
Option Explicit文を挿入するメリットについてはこちらをご覧ください。

タブ間隔の設定
タブ間隔を変更します。2または4がおすすめです。私は2に設定しています。
エディターの設定タブ
「構文エラーの文字」の設定
エディターの設定タブに移動します。
構文エラーの文字を選択します。前景を白、背景を赤に設定します。
「キーワード」の設定
キーワードを選択します。前景を赤に設定します。
「識別子」の設定
識別子を選択します。前景を青に設定します。
設定が完了したら、OKを押します。
設定変更後の画面
OKを押すとエディタが下記のように表示されます。
- 構文を間違えてもポップアップが毎回表示されない
- エラー構文の背景が真っ赤になっているので、エラー箇所が分かりやすい
- キーワード・識別子の色を変えたので標準コードと区別しやすい
エディターの設定がVBAプログラミングの効率にも影響を与えますので
自分に適したエディターの設定をみつけてみてください。
コメント
長くvbaを使用してますが、いまだエデッターでコード、プロジェクトエクスプローラー、プロバテイウインドウが同時に表示されなくなる時があり、難儀することがあります。
いろいろと試してどうにか元通りになるのですが、今回は戻りません。
ドッキング可でも別々のウィンドウになってしまいます。解決策をお教え願いいます。
初めてのメールで恐縮ですがご教授願えればと思います。「76歳VBA愛好者」
村木さん
コメントありがとうございます。
他のページのリンクになってしまうのですが、下記のページの方法を
試したところ、VBAエディターのウィンドウ表示を初期状態に戻すことができました。
https://www.moug.net/tech/exvba/0150129.html
リンク先の内容だと
HKEY_CURRENT_USER\Software\Microsoft\VBA\7.0\Common
となっていますが
私の環境だと7.0ではなく7.1のDockの名前を変更したところ、初期状態に戻せました。
お使いのExcelのバージョンによって変わるかと思います。
よろしくお願いいたします。
一連の流れとして OptionExplict にチェックを入れるのはよくないと思います。
このページの著者の思いを書いてほしいところです。
下記のような視点もあります。
都度、Dim宣言をしなければならず、まずそこにコストがかかること。
忘れていたら逐次Dim書き作業が必要で、スムーズなコーディングの妨げになります。
目視範囲内の ForNextループに使うような i ですら宣言が必要になってしまいます。
一方強制しないことでDim記載をせず使った時、AbCdと大文字小文字交じりに自動変換を期待したがabcdとなってしまう経験に基づくDim書きを積み重ねると、自分で必要な時だけDimを書く癖がつきます。
機械的にDimを書かされるのと、必要に応じて書くことを覚えるのでは身につき方が違います。
最初からDimを強要すると書くのが面倒臭くなるので、グローバル変数で、コードの頭に、Dim定義の塊を書く癖がつきます。
そうなると、ローカルで済むような変数でもグローバルにする行動をとってしまいます。どこでも同じ変数なので、思わぬバグを生み出します。Sub A内で一度使った変数xをSub Bで初期化(Dim や B=…) を忘れて違う値で処理してしまう。
またコードの頭とか、SubやFunctionの頭に集中して書いてしまう癖がつくので、Dimの場所と実際の変数を使う場所が離れてわかりにくくなります。
OptionExplictは強要された中でも楽しようとする自然な意識から、スコープを意識したDimを書くことを早く身に着ける機会や、Dimと変数を近くにおいて、わかりやすいコードを書くことを身に着ける機会を遠ざけることもあるので、一様に設定を推奨するようなものじゃないと思います。