- VBAでコードを書くのはわかったけど、なんかダサい
- このまま書き始めて大丈夫なの?
VBEはVBAを記述する場所ですが、デフォルト(初期)の設定では少しやりづらく、なんかダサいです。
ですので、以下の設定を最初に行うことをおすすめしています。
- 自動構文チェックを外す
- 変数宣言の強制
- エラートラップの場所
- VBEの暗転(色を変える)
この記事では、VBAを書き始める前に行うべき設定4選について解説しています。
これからVBAを勉強していく人、書こうとしている人には必見の内容になっています!
「そもそもVBEがよく分からない」「VBAってどこに書くの?」という人は以下の記事で解説していますので、参考にしてみてください。
【VBEとは?】VBAと何が違うの?開き方は?初心者にも分かりやすく解説!
Excelはもちろんのこと、WordやPowerPointだけでなく、AccessやTeamsなどのMicrosoft製品を使うならMicrosoft 365 Personalの利用がおすすめです。
\ExcelやPowerPointなどを使うなら!/
自動構文チェックを外す
1つ目は「自動構文チェック」を外す設定です。
これは、コードを1行書いたときにそのコードの構文(文法)的に正しいかを瞬時に判断する機能です。
- VBEを開く
- 「ツール」タブから「オプション」をクリック
- 「編集」タブの「コードの設定」欄
一見すると便利な機能ですが、「ちょっと手を放したい」「別の場所を直したい」など、複数の作業を同時にこなす際にいちいちポップアップが出てきて煩わしいです。
もちろん、初心者のうちはつけたままでも構いません。
自動構文チェックは「どこの行の・何が・どうすればいいのか」くらいまで教えてくれるので便利です。
VBAに慣れてきたらチェックを外しましょう。
変数宣言の強制
2つ目は変数宣言の強制です。
VBAは、変数を宣言しなくても使用できます。
- VBEを開く
- 「ツール」タブから「オプション」をクリック
- 「編集」タブの「コードの設定」欄
この設定をすると、自動でOption Explicit
という文が付与されます。 この文が変数宣言を強制している部分です。
よく、「おまじないだから必ず頭に、Option Explicitをつけましょう」と教えている教材などがありますが、それには変数を強制的に宣言させるという意味があるからです。
変数を宣言しないと、変数を好き勝手使っていいことになってしまいます。
開発中だけでなく、後からメンテナンスをする際にも変数がどんな役割を担っているのかが分からなくなってしまいます。
なので、「この変数は文字だけ格納できる」「この変数には数字のみ入れられる」といったように、適切に分けてあげる必要があります。
宣言していない変数を使用すると以下のようなエラーが出ます。
この設定をすることで、宣言し忘れを防止することが出来ます。
変数・定数はプログラミングをする以上、切っても切り離せません。
汚いコードにしないためにも、この設定は必ず行いましょう。
変数・定数に関しては以下の記事をご覧ください。
【変数とは?】プログラミングの基礎をVBAを例にわかりやすく解説!
エラートラップの場所
3つ目はエラートラップの場所の設定です。
プログラミングにエラーはつきもので、最初から最後までエラーを吐き出さずにコーディングを行うことは不可能です。
なので、エラーがある場合はどこで起きているかを検知する必要があります。
この設定で、どういうときにエラーで中断させるかを設定します。
- VBEを開く
- 「ツール」タブから「オプション」をクリック
- 「全般」タブの「エラートラップ」欄
この設定は3パターン設定可能で、
- エラー発生時に中断
- クラスモジュールで中断
- エラー処理対象外のエラーで中断
があります。それぞれ順番に解説していきます。
が、その前に、エラーの位置を把握するためにもサンプルコードを用意してみましょう。
標準モジュールを追加し、以下のコードをコピペしてください。
Sub test() Dim year As Long '//作成したクラスモジュールの変数を用意:「SAMPLE_CLASS」の機能を使える変数を用意 Dim sampleClass As SAMPLE_CLASS '//新しく「SAMPLE_CLASS」を変数に準備 Set sampleClass = New SAMPLE_CLASS '//エラーがあった場合は「WELCOME_ERROR」というラベルが付いた場所までワープする On Error GoTo WELCOME_ERROR '//ここでエラーになる:長整数型に文字を入れているため year = "令和4年" '//これを実行すると処理が終了する Exit Sub '//エラーだった場合のワープ先 WELCOME_ERROR: '//「SAMPLE_CLASS」というクラスモジュールの「I_AM_CLASS」という処理を呼び出している Call sampleClass.I_AM_CLASS End Sub
次に、クラスモジュールを追加し、モジュールの名前を「SAMPLE_CLASS」に変更して、以下のコードをコピペしてください。
※モジュールの名前変更は「プロパティウィンドウ(初期状態であれば左下のウィンドウ)」で変更可能です。
無ければ「表示」タブから表示させてください。
Public Sub I_AM_CLASS() Dim age As Long '//ここでエラーになる:長整数型に文字を入れているため age = "二十四" End Sub
エラー発生時に中断
この設定は、問答無用でエラーが起きた時に中断します。
この設定のまま、標準モジュールの「test」を実行してみましょう。
※「test」のコード内を選択し、「F5」を押すと実行できます。
すると、「型が一致しません」というエラーメッセージが表示されるので、「デバッグ」をクリックします。
画像の通り、year
に代入するところで中断します。
このように、エラーが起きたらすぐに中断するようになり、On Error GoTo
も無視されます。
基本的には、この設定にしておいた方が便利です。
クラスモジュールで中断
この設定はクラスモジュールのエラーを検知し中断します。
設定を変更したら、再度、標準モジュールの「test」を実行してみましょう。
すると、再び「型が一致しません」というエラーメッセージが表示されるので、「デバッグ」をクリックします。
今度は、クラスモジュール内で中断しました。
このように、エラーがあった場合の処理(On Error GoTo)はそのまま動作し、クラスモジュールに移動した後のエラーを検知し、中断してくれます。
クラスモジュールは単品では使用できません。
インスタンス化という作業を行って初めて効果を発揮します。サンプルコードで言うと、Set sampleClass = New SAMPLE_CLASS
という部分です。
つまり、別のモジュールで定義し、別のモジュールで呼び出してあげるのが基本の使い方です。
エラートラップ用の処理(On Error系)は中断してほしくないけど、クラスモジュールなどできちんと止めてほしい人はこの設定が良いでしょう。
エラー処理対象外のエラーで中断
この設定は、エラーに対する処理はそのまま動作+クラスモジュールの場合は呼び出し元で中断します。
設定を変更したら、再度、標準モジュールの「test」を実行してみましょう。
すると、またまた「型が一致しません」というエラーメッセージが表示されるので、「デバッグ」をクリックします。
今度は、エラートラップ先(WELCOME_ERROR
)で、呼び出したクラスモジュールの処理の部分で中断しました。
このように、エラーに対する処理はそのまま動作し、クラスモジュールでエラーがある場合は呼び出し元で中断するようになります。
初期設定はこれになっていると思いますが、開発するには使いづらいので、上の2つどちらか(エラー発生時 or クラスモジュール)にしておきましょう。
VBEの暗転(色を変える)
4つ目はVBEの暗転・色の変更です。
VBEはレガシーなIDE(統合開発環境)なので、Visual Studio CodeやEclipseのように便利でかっこいい環境を構築することはできません
しかし、エディタ部分(コードを書く部分)のフォント・色の変更は可能です。
開発する際は何時間も画面を見続けるため、背景は暗い方が目に優しく見やすいです。
また、デフォルトのフォントである「MS ゴシック」はどうも見づらく感じてしまいます。
ですので、自分でカスタマイズし見やすい見た目を作ることが開発では大事になってきます。
- VBEを開く
- 「ツール」タブから「オプション」をクリック
- 「エディターの設定」タブ
おすすめの設定例
見た目に関することなので、実際に試して、お気に入りの設定を見つけてみていただきたいのですが、私の設定を例として載せておきます。
参考にしてみてください。
色以外の設定
項目 | 設定値 |
---|---|
フォント | 游ゴシック Regular (日本語) |
サイズ | 10 |
コードの表示色
項目 | 前景 | 背景 | インジケーター |
---|---|---|---|
標準コード | 白(一番下) | 黒(上から2番目) | 自動 |
選択された文字 | 自動 | 自動 | 自動 |
構文エラーの文字 | 白(一番下) | 赤(下から4番目) | 自動 |
次のステートメント | 自動 | 黄色(下から2番目) | 黄色(下から2番目) |
ブレークポイント | 白(一番下) | 濃い赤(上から6番目) | 濃い赤(上から6番目) |
コメント | 黄緑(下から6番目) | 黒(上から2番目) | 自動 |
キーワード | 黄色(舌から2番目) | 黒(上から2番目) | 自動 |
識別子 | 水色(下から5番目) | 黒(上から2番目) | 自動 |
ブックマーク | 自動 | 水色(下から5番目) | 水色(下から5番目) |
呼び出し元 | 自動 | 黄緑(下から6番目) | 黄緑(下から6番目) |
実際に見てみるとこんな感じです。
まとめ|よく使うからこそ環境設定は超大事!!
今回はVBEでやるべき設定について解説しました。
プログラミングでは環境設定は命です。
他言語に比べ、Excelなどを開けばすぐに使えるVBAは設定が少ない方ですが、デフォルトの設定はイマイチいけてないです。
他にもVBEの各ウィンドウの配置やタブ関連などもカスタマイズできます。
自分好みの設定は開発しながら見つけていきましょう。