【VBA】VBA エディターのおすすめ設定

VBA
この記事は約3分で読めます。

VBAを利用しているみなさんは、Excelに付属しているVisual Basic Editor(VBE)を利用して
VBAの入力をされていると思います。

VBEを利用していて、以下のように感じたことはないでしょうか。

  • 構文を間違えるたびにポップアップが表示されて、わずらわしい
  • エディタが黒文字ばかりで分かりづらい

この記事では、VBAのオススメな設定方法をご紹介します。

  • 自動構文チェックを外す
  • 変数の宣言を強制させる
  • タブ間隔設定
  • 構文エラー文字、キーワード、識別子の設定

VBEの初期設定

初期状態のVBEではコメントとエラー以外が全部黒文字になっており使いづらいです

 

そのままでも使うことはできますが、設定を変更することによってVBAのコーディングの
効率をあげることができます。

おすすめ設定

Excelを起動し、開発タブのVisual BasicをクリックするとVBA Editorが起動します。

 

「ツール」→「オプション」をクリックします。

 

編集タブ

オプション画面が表示されます。
初期の状態では下記のようになっています。

 

自動構文のチェックを外す

「自動構文チェック」のチェックをはずします。

 

「自動構文チェック」にチェックがついているとVBAの構文にエラーがあるたびに
毎回ポップアップ画面が表示されるのでわずらわしいです。
チェックを外すことにより、ポップアップ画面は表示されなくなります。

 

変数の宣言を強制する

続いて「変数の宣言を強制する」にチェックをいれます。

「変数の宣言を強制する」にチェックを入れると新しく作成したモジュールの先頭に
自動的にOption Explicit文が挿入されます。
Option Explicit文を挿入するメリットについてはこちらをご覧ください。

VBAでOption Explicitを書くべきか?
VBAではOption Explicitステートメントをモジュールの先頭に書くことにより プログラムを実行する前に、すべての変数が宣言されていることをVBAが確認してくれます。 これにより、変数名の入力ミスを防ぐことができます。

 

タブ間隔の設定

タブ間隔を変更します。2または4がおすすめです。私は2に設定しています。

 

エディターの設定タブ

「構文エラーの文字」の設定

エディターの設定タブに移動します。
構文エラーの文字を選択します。前景を白、背景を赤に設定します。

 

「キーワード」の設定

キーワードを選択します。前景を赤に設定します。

 

「識別子」の設定

識別子を選択します。前景を青に設定します。

 

設定が完了したら、OKを押します。

 

設定変更後の画面

OKを押すとエディタが下記のように表示されます。

  • 構文を間違えてもポップアップが毎回表示されない
  • エラー構文の背景が真っ赤になっているので、エラー箇所が分かりやすい
  • キーワード・識別子の色を変えたので標準コードと区別しやすい

エディターの設定がVBAプログラミングの効率にも影響を与えますので
自分に適したエディターの設定をみつけてみてください。

コメント

  1. 村木 啓道 より:

    長く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のバージョンによって変わるかと思います。
      よろしくお願いいたします。

  2. たなか より:

    一連の流れとして 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と変数を近くにおいて、わかりやすいコードを書くことを身に着ける機会を遠ざけることもあるので、一様に設定を推奨するようなものじゃないと思います。