今回は、VBA(Excelのマクロを書く言語)を編集する画面=VBEの「オプション」設定を見直す話です
VBEは初期設定のままでも動きますが、いくつかの項目を変えるだけで打ち間違いによるバグが減って、コードもぐっと読みやすくなります
この記事では、初心者の方がまず触っておきたいおすすめ設定を、画面のタブ別に7つにしぼって整理しました(おすすめの7つは最後に早見表でまとめます)
VBEのオプションとは?開き方と4つのタブ
VBE(Visual Basic Editor)は、ExcelやWordでマクロを書くための専用エディタです
その動作や見た目をまとめて調整できるのが、メニューの「ツール → オプション」から開くオプションダイアログになります
先に結論を言うと、ここを最初に少し整えておくだけで、後々のミスや「なんか書きにくいな」というストレスがかなり減ります
とくに初心者のうちは、打ち間違いに気づけない状態が一番こわいので、その対策になる設定が用意されているのは知っておいて損がないです
まずはVBEを開くところから確認しておきましょう
ExcelでVBEを呼び出すショートカットは Alt + F11 です
Excelを開いた状態で Alt + F11 を押すと、VBEのウィンドウが立ち上がります
VBEの上部メニューから「ツール(Tools)」をクリックします
メニューの中から「オプション(Options)」を選ぶと、設定ダイアログが開きます


オプションダイアログは、上部のタブで4つの画面に分かれています
それぞれ役割が違うので、ざっくり何のタブかをつかんでおきましょう
| タブ(英語名) | 役割 |
|---|---|
| 編集(Editor) | 入力補助やタブ幅など、コードを書くときの動作 |
| エディターの設定(Editor Format) | フォントや色など、コードの見た目 |
| 全般(General) | エラーの止め方やコンパイルの設定 |
| ドッキング(Docking) | 各ウィンドウの固定のしかた |
英語名は Editor ですが、日本語版の画面では「編集」タブと表示されます(Editor=エディター、と思うとズレるので注意してください)
画面に出るタブ名やラベルの日本語表記は、お使いの環境やExcelのバージョンで少し変わることがあります
この記事では英語名を併記しておくので、画面と見比べながら読んでもらえると確実です
なお、この記事は Windows版のExcel を前提にしています
VBEのオプション構成はExcel 2016〜365で基本的に同じですが、Mac版はオプション画面の構成や一部設定の効き方が違い、この記事のとおりにいかないことがあります
ジャベ雄4タブ全部を完璧に覚える必要はないです、要所だけ押さえれば十分です
最重要:「変数の宣言を強制する」でtypoバグを防ぐ
最初に、この記事で一番おすすめしたい設定からいきます
編集タブの中にある 変数の宣言を強制する(Require Variable Declaration) です
結論から言うと、この設定をONにすると、新しく作るモジュールの先頭に Option Explicit という1行が自動で入るようになります
このひと手間が、初心者がやりがちな打ち間違いバグを大きく減らしてくれます
なぜtypo(打ち間違い)がバグになるのか
VBAは初期状態だと、宣言していない変数名をいきなり書いても、その場で勝手に新しい変数として扱ってくれます
一見やさしい仕様ですが、これが打ち間違いを見逃す原因になります
たとえば kingaku という変数に金額を入れていたのに、途中で kinaku と打ち間違えたとします
すると VBA は「kinaku は新しい変数だな」と判断して、空っぽのまま処理を続けてしまいます
エラーにもならず、ただ計算結果だけがおかしくなる
これがいわゆる「動くのに答えが合わない」厄介なバグで、原因探しに何時間も溶かすこともあります
Option Explicit が打ち間違いを止めてくれる
そこで効いてくるのが Option Explicit です
これはモジュールの先頭に書く宣言で、「使う変数はすべて先に宣言しておいてね」というルールをVBAに守らせます
このルールが効いていると、宣言していない kinaku を書いた瞬間にエラーで止まってくれます
つまり、答えが合わなくなってから悩むのではなく、書いた直後に「あ、打ち間違えた」と気づけるわけです
変数の宣言を強制する設定は、この Option Explicit を毎回手で書かなくても、新しいモジュールに自動でつけてくれる便利機能だと考えてもらえると分かりやすいです



私はこれを入れてから、変数まわりの謎バグでハマる回数がはっきり減りました
Option Explicit そのものの意味や、変数の宣言(Dim)の書き方をもっと深く知りたい方は、別記事でじっくり解説しています
あわせて読むと、なぜこの設定が効くのかが腑に落ちると思います
→ VBAの変数と定数の使い方(Option Explicitの意味も解説)
注意:効くのは「新規モジュール」だけ
ここがいちばん勘違いされやすいポイントです
変数の宣言を強制するをONにしても、すでに作ってあるモジュールには Option Explicit は入りません
この設定で自動挿入されるのは、あくまでこれから新しく作るモジュールだけです
マイクロソフトの公式リファレンスでも、追加されるのは「any new module(新しいモジュール)」と明記されています
ありがちな誤解:ONにすれば、今あるマクロも全部まとめて安全になる
実際は新規モジュールだけが対象です
既存のモジュールは、自分で先頭に1行 Option Explicit を書き足す必要があります
といっても、やることは難しくありません
既存モジュールのコードの一番上に Option Explicit と1行打つだけで、そのモジュールにも同じルールが効くようになります




エディタータブ:入力補助とタブ幅のおすすめ
続いて、同じ編集(Editor)タブにある残りの項目を見ていきます
結論としては、入力補助はほぼ全部ONのままが快適で、タブ幅だけ好みで調整する、というのが初心者向けのおすすめです
編集タブの設定は、ざっくり「入力を助けてくれる系」と「画面の見せ方系」に分かれます
まずは入力を助けてくれる系から、表でまとめて整理します
| 設定名(英語名) | 働き | おすすめ |
|---|---|---|
| 自動構文チェック(Auto Syntax Check) | 1行打つたびに文法ミスを検査して警告を出す | 好みでOFFも可(後述) |
| 変数の宣言を強制する(Require Variable Declaration) | 新規モジュールに Option Explicit を自動挿入 | ON(本記事の主役) |
| 自動メンバー表示(Auto List Members) | 入力途中に候補リストを出す(入力補完) | ON |
| 自動クイックヒント(Auto Quick Info) | 関数や引数の構文をその場で表示 | ON |
| 自動データヒント(Auto Data Tips) | 変数にカーソルを当てると値を表示 | ON |
| 自動インデント(Auto Indent) | 前の行の字下げを次の行に引き継ぐ | ON |
入力補助系はONのままが快適
自動メンバー表示・自動クイックヒント・自動インデントは、コードを書くスピードと正確さを上げてくれる機能です
初期状態でONになっていることが多いので、基本はそのままで問題ありません
ひとつ補足しておきたいのが 自動データヒント(Auto Data Tips) です
これは変数にマウスを乗せると値が見える機能ですが、いつでも見えるわけではなく、ブレークモード(処理を一時停止したデバッグ中)のときだけ使えます
「ONにしたのに値が出ない」と感じたら、それはマクロが止まっていないからかもしれません
F8キーで1行ずつ実行している最中などに試すと、ちゃんと値が表示されます
自動構文チェックはOFFも検討の余地あり
自動構文チェック(Auto Syntax Check)は、1行入力するたびに文法をチェックして、ミスがあると警告ダイアログを出してくれる機能です
ありがたい機能ではあるのですが、人によっては「入力の途中で何度も警告が出てうっとうしい」と感じます
そこでよく出てくるのが「OFFにすると、エラーに気づけなくなるのでは?」という心配です
ここはよくある誤解なので整理しておきます
自動構文チェックをOFFにしても、エラーのある行は赤い文字で残るのが基本です
消えるのは、入力途中に毎回出る警告ダイアログだけです
つまりOFFにしても、ミスのある行は色で見分けられるので気づけます
ダイアログのわずらわしさが気になる方はOFF、最初のうちは警告で気づきたい方はONのまま、と好みで選んで大丈夫です
※この赤字が残る挙動は環境によって見え方が変わることもあるので、気になる方は一度ご自身のVBEで試してみてください
タブ幅と画面の見せ方
編集タブには、コードの見せ方を決める項目もあります
初心者がとくに気にすると良いのは タブ幅(Tab Width) です
タブ幅は、Tabキーで字下げするときの空白の量で、既定は4、設定できる範囲は1〜32 です
既定の4のままでも問題なく、深い入れ子で右に寄りすぎると感じるなら2に下げる、といった調整ができます
そのほか、画面の見せ方に関わる項目も軽く触れておきます
下の表は、知っておくと迷わない補助的な設定です
| 設定名(英語名) | 働き | メモ |
|---|---|---|
| タブ幅(Tab Width) | 字下げの空白量 | 既定4・範囲1〜32 |
| モジュール全体を表示(Default to Full Module View) | 新規モジュールを全プロシージャ連続表示にするか | 今開いている画面の表示は変えない |
| プロシージャの区切り線(Procedure Separator) | 各プロシージャの末尾に区切りバーを表示 | 区切りが見えると読みやすい |
| ドラッグアンドドロップ編集(Drag-and-Drop Text Editing) | コードを選んでドラッグで移動できる | 好みで |
ひとつだけ補足です
モジュール全体を表示(Default to Full Module View)は、あくまでこれから開く新規モジュールの既定を決める設定で、今まさに開いている画面の見え方は変えません



区切り線はオンにしておくと、プロシージャの切れ目が一目で分かって便利です
エディターの設定タブ:フォントと色でコードを見やすく
次は「エディターの設定(Editor Format)」タブです
ここはコードの見た目、つまりフォントや色を整える画面で、長時間コードを書く人ほど効いてきます
フォントは等幅がおすすめ
コードを読むときは 等幅フォント(全部の文字が同じ幅で並ぶフォント)が見やすいです
桁がきれいにそろうので字下げが読み取りやすく、数字の0とアルファベットのO、小文字のlと数字の1なども見分けやすくなります
逆に比例フォント(文字幅がバラバラのフォント)だと字下げの位置がガタついて、入れ子の深さを目で追いにくくなります
日本語版のExcelだと、既定のフォントは MS ゴシック になっていることが多いです
これも等幅フォントなので無理に変える必要はありませんが、好みで Consolas などに変えても読みやすくなります
既定のフォント名やサイズは、Officeのバージョンや言語設定で変わることがあります
正確なところは、ご自身の「エディターの設定」タブを開いて確認するのが確実です
色分けと余白インジケーターバー
このタブでは コードの色分け(Code Colors) も調整できます
キーワード・コメント・エラー行など、テキストの種類ごとに前景色(文字色)や背景色を決められます
初心者のうちは初期設定のままで十分ですが、コメントの色を少し目立たせると、説明書きとコードの区別がつきやすくなります
暗い背景にしたい人は、ここで文字色と背景色を反転させる調整もできます
もうひとつ、余白インジケーターバー(Margin Indicator Bar) という項目もあります
これはコードウィンドウの左端に出る帯の表示・非表示を切り替えるもので、この帯にブレークポイントなどのマークが出ます
デバッグ(処理を止めて中身を確認する作業)でよく使う場所なので、基本は表示したままがおすすめです


全般タブ:エラーのトラップを知っておく
「全般(General)」タブで初心者がいちばん知っておくと良いのが エラーのトラップ(Error Trapping) です
これは、マクロ実行中にエラーが起きたとき「どこで処理を止めるか」を決める設定で、デバッグのしやすさに直結します
エラーのトラップ 3つのモード
エラーのトラップには3つのモードがあります
違いを表でつかんでおきましょう
| モード(英語名) | 挙動 | 普段はこれ |
|---|---|---|
| すべてのエラーで中断(Break on All Errors) | エラー処理を書いていても、どんなエラーでも例外なくその場で止まる | デバッグ時だけ一時的に |
| クラスモジュールで中断(Break in Class Module) | クラスモジュール内で処理しきれなかったエラーを、その行で止める | 通常は使わない |
| エラー処理対象外のエラーで中断(Break on Unhandled Errors) | エラー処理があれば止めずに捕まえ、無ければ止める | 普段はこれ(既定) |
通常は エラー処理対象外のエラーで中断(Break on Unhandled Errors) になっていることが多いです
これが既定なので、普段づかいではこの状態のままで問題ありません
覚えておくと便利なのが すべてのエラーで中断(Break on All Errors) の使いどころです
On Error などのエラー処理を書いていると、エラーがあっても素通りしてしまい、どこで失敗したのか分かりにくくなることがあります
そんなときは 一時的にすべてのエラーで中断に切り替えると、エラーが起きた行でピタッと止まるので原因を特定しやすくなります
原因が分かったら元に戻す、という使い方が定番です



原因不明のバグに詰まったら、この切り替えを思い出すと助かります
コンパイルと状態の通知は軽く知っておく
全般タブには、コンパイル(コードを実行できる形に変換する処理)に関する項目もあります
初心者がいじる場面は少ないので、ここは軽く知っておく程度で十分です
- 要求時コンパイル(Compile On Demand) … 実行に必要な部分だけ先にコンパイルして、起動を早める
- バックグラウンドコンパイル(Background Compile) … 空き時間に残りをコンパイルする(要求時コンパイルがONのときだけ有効)
バックグラウンドコンパイルは、要求時コンパイルがONになっていないと使えないという依存関係があります
どちらも基本は初期設定のままで困りません
もうひとつ、状態を失う前に通知(Notify Before State Loss) という項目もあります
これは、実行中のマクロを編集したせいで変数の中身がすべてリセットされる前に、確認メッセージを出すかどうかの設定です


ドッキングタブと設定の保存先の話
最後のタブが「ドッキング(Docking)」です
ここは、VBE内の各ウィンドウを画面の端に固定するかどうかを、チェックボックスで選ぶ画面になります
ドッキングタブでウィンドウの居場所を整える
ドッキングとは、ウィンドウをVBEの端にピタッとくっつけて固定する状態のことです
プロジェクトエクスプローラーやプロパティウィンドウ、イミディエイトウィンドウなどを、それぞれ固定するかどうか選べます
固定をやめると、ウィンドウを自由に動かせるフロート状態になります
「ウィンドウがどこかに行って戻せない」というときは、このタブのチェックを見直すと整いやすいです


設定はExcelとWordで共通になりやすい
まず安心してほしいのが、一度変えた設定はExcelを閉じても残るという点です
毎回やり直す必要はなく、変な設定にしてしまっても同じ画面でいつでも戻せます(再起動もいりません)
もうひとつ、知っておくと混乱しない小ネタです
VBEのオプションは、Excelごと・Wordごとに別々ではなく、VBAの仕組み側にひも付く傾向があります
そのため、ExcelのVBEで変えた設定が、WordのVBEを開いたときにも同じように効いていることが多いです
「片方で整えたのに、もう片方では設定し直し」とはなりにくい、と考えておくと良いです
共通になる範囲は項目や環境によって差があります
「だいたい共通になりやすい」くらいの感覚でとらえておくと安全です
まとめ:VBEおすすめ設定の早見表とよくある質問
ここまでのおすすめ設定を、冒頭で予告した7つとして早見表にまとめます
まずは主役の「変数の宣言を強制する」をONにするところから始めれば十分です
| 設定名 | おすすめ | 効果 |
|---|---|---|
| 変数の宣言を強制する | ON | 新規モジュールにOption Explicitを自動挿入し打ち間違いバグを防ぐ |
| 自動メンバー表示 | ON | 入力補完で書くスピードと正確さが上がる |
| 自動クイックヒント | ON | 関数や引数の構文がその場で見える |
| 自動データヒント | ON | デバッグ中に変数の値が見える(ブレークモード限定) |
| 自動構文チェック | 好みでOFFも可 | OFFでもエラー行は赤字で残る、消えるのは警告ダイアログ |
| タブ幅 | 4(既定のままで可) | 字下げの幅を調整(既定4・範囲1〜32) |
| プロシージャの区切り線 | ON | プロシージャの切れ目が一目で分かる |
まずはこの1つだけ:VBEで ツール → オプション → 編集タブ → 一番上の「変数の宣言を強制する」にチェック → OK、これだけで打ち間違いバグがぐっと減ります
VBAの基礎をもっと固めたい方は、変数の使い方やループ処理の記事もあわせてどうぞ
設定を整えたあとは、書くコード自体の引き出しを増やしていくのが上達の近道です
変数の宣言を強制するをONにしたのに、古いマクロでエラーが出ません
この設定が効くのは、これから新しく作るモジュールだけです
すでにあるモジュールには反映されないので、そのモジュールの先頭に自分で Option Explicit を1行書き足してください
自動構文チェックをOFFにすると、ミスに気づけなくなりませんか?
OFFにしても、エラーのある行は赤い文字で残るので気づけます
消えるのは、入力途中に毎回出る警告ダイアログだけです
環境で見え方が変わることもあるので、一度ご自身のVBEで試してみてください
自動データヒントをONにしたのに、変数の値が表示されません
自動データヒントは、処理を一時停止したブレークモード(デバッグ中)のときだけ使えます
F8キーで1行ずつ実行している最中などにカーソルを当てると、ちゃんと値が表示されます
VBEのオプションは、一度整えてしまえば毎回設定し直す必要がありません
まずは変数の宣言を強制するをONにして、打ち間違いバグの少ない環境から始めてみてください











コメント