- VBAやマクロについて調べていたら「VBE」という単語が出てきた
- VBAでマクロを作るのはわかったけど、どこにコードを書くの?
- VBEって何?
VBEとは、VBAの統合開発環境のことです。
統合開発環境についての詳細は後述しますが、簡単に言うとプログラミング言語を書く場所やテストする機能などを詰め込んだソフトのことです。
この記事では、以下について解説しています。
- VBEとは何か
- VBAとの違い
- VBEの開き方
- VBEで重要な画面4つ
VBAを勉強する前に、まず、どこにコードを書くのかを知らなければ書くことが出来ません。
VBAを勉強し始めている方・仕事で扱う人は必見です。
VBEとは
VBEとは、VBAの統合開発環境のことです。
VBEは「Visual Basic Editor(ヴィジュアル ベーシック エディター)」の略で、その名の通りエディター(メモ帳みたいなもの)です。
統合開発環境については、下で解説しています。
VBAはこのVBEに記述することで、動くようになります。
VBAとの違い
似たような名前なので間違いやすいですが、
- VBAはOfficeアプリのプログラミング言語
- VBEはそのVBAを記述する場所
ということになります。
ちなみに、VBAについては以下の記事で解説しています。
「そもそも、VBAって何?」という方は参考にしてみてください。
統合開発環境とは
統合開発環境とは、プログラミング開発における環境のことで、開発に必要ないろんな機能を1つのソフトに詰め込んだものです。
主な機能として、以下の機能があります。
- コードを書くコードエディタ
- 書いたコードを機械語に変換するコンパイラ
- コードのテストをする際に使用するデバッガ
VBAの統合開発環境として、VBEが用意されており、コーディング・テストなどはすべてVBEで行います。
ちなみに「.vbe」というファイルもあるが。。。
余談ですが、「.vbe」という拡張子のファイルも存在します。
あまり見かけませんが…
これは、VBScriptという言語で書かれたファイルをエンコードしたファイルを指しています。
この記事で紹介しているVBEとは全くの無関係です。
VBEの開き方
それでは、実際にVBEを開いてみましょう。
記事を読むだけでなく、実際に動かしながら読み進めてもらえると覚えやすいと思います。
「開発」タブを出す
まず、「開発」タブを出しておきましょう。
基本的に、Excelの初期設定では「開発」タブは表示されていません。
- 「ファイル」タブをクリック→「オプション」をクリックします。
- 「リボンのユーザー設定」をクリックします。
- 右側の「開発」にチェックを入れ「OK」をクリックし終了します。
「オプション」は「その他」の中に隠れている場合もあります
このようなタブが追加されました。
「開発」タブからは、「Visual Basic」をクリックすることで、VBEが開きます。
※環境や設定などで見え方などは少し異なります。
ショートカットキー
わざわざ、「タブ→ボタン」のように2段階でクリックしなくても、ショートカットキーで1発で開くことが可能です。
「開発」タブと同様にVBEが開くかと思います。
このショートカットキーはVBAを使った開発をする上で重宝するので、絶対覚えておいてください!
VBEの重要な画面
それでは、実際にVBEを開いたところで、重要な各画面について説明していきます。
今後、各画面の名前が良く出るようになるので、名前と大体の役割を結び付けられるようにしておきましょう。
コードウィンドウ
その名の通り、コードを書く場所です。ここにコードを書いていきます。
ただし、開いただけでは書く場所は用意されていません。
VBAにはモジュールというものがあります。
各モジュールについては別記事で解説しますが、このモジュールにVBAでコードを記述します。
今回は一番よく使う標準モジュールを追加します。
「挿入」タブから「標準モジュール」をクリックすると、「Module1」が追加されます。
ここに、簡単なサンプルコードを書いてみます。
Sub VBEとはSample() '//msgという変数を用意 Dim msg As String '//msgに値を格納 msg = "これがVBAです" '//イミディエイトウィンドウにmsgを表示 Debug.Print msg End Sub
VBAでは、基本、「Sub~End Sub」または、「Function~End Function」で囲まれた部分が1処理の中身になります。
この1処理をプロシージャと言います。
コードの中身については別記事などで解説しますが、簡単な動きはコメント(「’」の後の緑色の文字)の通りです。
このようにコードウィンドウではコードを書く部分で、VBEの大半はこの画面を操作することになります。
その他の画面の説明に行く前に、コード以外のウィンドウについては表示されていない場合があります。
その場合、「表示」タブから各ウィンドウをクリックすることでそのウィンドウを開くことが出来ます。
また、この画面は自由に配置することが出来ます。 お好みの配置をカスタマイズしてみてください。
ローカルウィンドウ
実行中の処理の変数などの中身を教えてくれる画面です。
VBEでは、デバッグ作業としてステップ実行という操作ができます。
先ほど書いた、プロシージャ内のどこかをクリックし、F8キーを押すと、行が黄色くなり強調されます。
このように、1行ずつ実行する作業をステップ実行と言います。
そのデバッグ作業中に現在の処理の中にある変数などが、どんな状態かを見せてくれるのが「ローカルウィンドウ」です。
サンプルコードでは、msgに値を格納した後なので、msgの値が「これがVBAです」となっています。
この画面はデバッグ作業など、テストの際に使用します。
実行中の変数などの中身がすべて見れて便利である反面、変数などが大量だと本当に見たい部分が見づらくなってしまいます。
ウォッチウィンドウ
実行中の処理の変数などの中身を教えてくれる画面です。
ただし、ローカルウィンドウとは違い、事前に見たい変数などを追加しておく必要があります。
追加は、変数を右クリック→「ウォッチ式の追加」で追加できます。
また、変数をウォッチウィンドウにドラッグ&ドロップすることで追加も可能です。
機能としてはローカルウィンドウとほぼ同じです。
異なる点は、以下の2点くらいです。
- 実行していない処理内の変数なども追加されたままになる
- スコープ(変数や定数の影響範囲)を指定できる
※変数や定数には「プロシージャ内のみ/モジュール内のみ/同じブック内であれば全部」といったように影響範囲を指定することが出来ます。
つまり、見たい変数を追加しておき、デバッグ作業でどうなっているかを確認することが出来る画面ということです。
また、別のプロシージャやモジュールに移った場合の状態も確認できる画面になります。
個人的には、ローカルウィンドウよりもウォッチウィンドウのほうがよく使います。
エラーが起きた変数のみを調べたり、配列などの、中身を想像するのが少し難しい変数を追加しておくと、デバッグ作業の時にスムーズに進めるからです。
イミディエイトウィンドウ
今までとは異なり、少し特殊な画面です。
イミディエイトウィンドウでは、以下の作業ができます。
- オブジェクト変数以外の変数の中身を吐き出せる
- 処理のアウトプット先にできる
- 処理を実行する
順番に解説していきます。
オブジェクト変数以外の変数の中身を吐き出せる
変数の中身をイミディエイトウィンドウにアウトプットすることができます。
変数の前に?
をつけ、Enterを押すとその結果が返ってきます。
あまり使わないですが、ウォッチウィンドウやローカルウィンドウを開かずにサクッと確認したいときなどに使用します。
処理のアウトプット先にできる
この方法はよく使います。
サンプルコードにある通り、Debug.Print 変数
でイミディエイトウィンドウに出力することができます。
とりあえず、ここまで開発進んだけど、この変数ちゃんと動くかな?
といったように実際のアウトプットではなく、処理の流れで正しく動作しているかどうかを確認する際などによく使用します。
また、イミディエイトウィンドウに出力した値はExcelを終了させない限り(または、消さない限り)残ります。
試しに実行してみて確認するということが出来るため、この方法でのイミディエイトウィンドウはよく使います。
その他の画面での確認はデバッグ作業中(つまり、処理中断中)にしか確認できません。
処理を実行する
少し特殊な使い方ですが、頭に?
をつけずにコードを入力&Enter押下で処理を実行することも可能です。
サンプルコードでは、ステップ実行中のmsgに値が格納された後、msgの値をイミディエイトウィンドウで格納しています。
この後に「Debug.Print」を実行するとイミディエイトウィンドウで格納した値が出力されます。
デバッグ作業中に強制的に終了させたい場合や強制的に条件を変えたい場合などに使用します。
保存して完成!
さて、VBEを開くことができ、VBAでコードが書けたのであとは保存すれば完成です。
しかし、VBAを記述した場合、そのままでは保存できません。
まとめ|VBEはVBAを書く場所!
今回はVBEについて、以下のポイントを解説しました。
- VBEとは何か
- VBEの各画面について
VBEはもっと細かい画面・機能などがありますが、主に使うのは今回紹介した画面です。
VBEが開けなければ、VBAでマクロを組むことはできません。
大事なスタートラインですので、繰り返し実践して覚えましょう!