Excel VBAでマクロを作成する際、欠かすことのできないものが「VBE」と呼ばれるものです。
このVBEがなければVBAの記述が行えず、マクロを作ることができませんが、普段何気なく使っているという方も多いのではないのでしょうか?
また、これからVBAを学ぼうという方や学んでいる方も「VBAの書き方や構文」を覚えることにリソースを使い、VBEについてはそこまで関心がないという方もいらっしゃるかもしれません。
普段何気なく使っているVBEも、改めてどんなものかを知るとVBAの記述やマクロの作成・編集に役立つことも見つかる場合もあります。(実際、私もそうでした…)
今回はマクロ作成に欠かせない「VBE」についてその構成と特に利用することが多い点、そしてVBAを記述する際の構文の構成(オブジェクトやプロパティ)について解説していきます。
VBEとはいったい何なのか?
VBAを記述して、マクロを作成するのには「VBE」を使用する必要がありますが、このVBE
とはいったい何なのでしょうか?
VBEとは、
「Visual Basic Editor」
と呼ばれるものであり、
マクロの編集やVBAを記述するためのソフトウェア
です。
このVBEはExcelのみのソフトウェアというわけではなく、AccessなどほかのOfficeソフトにも共通して存在しています。
そのため、VBEの使い方を学べばほかのOfficeソフトでも同じように使用することが可能です。
特にExcel以外でVBEを使う頻度が高いOfficeソフトはAccessではないかなと思います。
データベースの構築やExcel⇔Access間でのデータの行き来を行ったりなど、AccessでもVBAでプログラムを作成する必要があります。
コードの記述方法など、やはりExcelとAccessとの間には差異がありますが、VBEの基本構成や使い方は同じです。
ちなみにVBEはExcelを開き、「開発」タブの「Visual Basic」をクリックすることで立ち上がります。
または「Alt+F11」のショートカットキーを使って立ち上げることも可能です。
VBEの構成はどうなっているの?
では、VBEは実際どのような構成となっているのか見ていきましょう。
VBEの画面は大きく分けて4つの画面構成となっています。
その4つが下記の通りです。
① プロジェクトエクスプローラー
② プロパティウィンドウ
③ コードウィンドウ
④ ローカル、イミディエイト、ウォッチウィンドウ
※ただし、「ローカル」「イミディエイト」「ウォッチ」ウィンドウはデフォルトではなく、「表示」メニューから選択してウィンドウを追加する必要があります。
VBEを構成する画面とは?
VBEの画面には、4つの構成物がありました。
では、それぞれの画面(ウィンドウ)はどのような役割があるのでしょうか?
1つずつ見ていきましょう。
プロジェクトエクスプローラー
プロジェクトエクスプローラーは、1つのワークブックを「1プロジェクト」として、そのプロジェクト内のオブジェクト一覧を表示しています。
プロジェクトエクスプロ―ラーでは、以下5つのオブジェクトが表示されます。
1.シートオブジェクト・・・ワークシートのイベントを記述するモジュール
2.ブックオブジェクト・・・ワークブックのイベントを記述するモジュール
3.フォームオブジェクト・・・ユーザーフォームの作成・編集を行うモジュール
4.標準モジュールオブジェクト・・・VBAでコードを記述して、マクロを作成するためのモジュール
5.クラスモジュールオブジェクト・・・オブジェクトを作成するための設計図のような役割を担うモジュール
ここで、オブジェクトやモジュールなど新しい専門用語が出てきましたが、それぞれについて簡単に解説すると、
「オブジェクト」・・・ブックやシート、セルなど「操作の対象」となるもの
「モジュール」・・・マクロを保存しておくもの。(マクロを作成するための「作業台」がVBEだとすると、モジュールは実際にマクロを書く「紙」や「ノート」のようなイメージです。)
「イベント」・・・オブジェクトへの処理や操作のことを指します。(例えば、セルをクリックして値を入力できるようにする。シートを選択して、アクティブ化するなど。)
このように、プロジェクトエクスプローラーの構成を見ても多くの専門用語があり、複雑に見えるかもしれませんが、
マクロを作成するには「標準モジュール」を使う。
ということが押さえて置ければ、一般的なマクロ作成をする面では困ることはないです。
また、マクロの使い勝手や利用者の動線に合わせたマクロツールを作成する場合は「ユーザーフォーム」を使うと便利ですが、そのユーザーフォームはフォームオブジェクトで作成と編集が可能です。
プロパティウィンドウ
プロパティウインドウでは、プロジェクトエクスプローラーで選択したオブジェクトについて、プロパティの表示と編集を行うことができます。
個人的に標準モジュールオブジェクトにて、マクロを作成・編集する場合にはあまり使用する機会は少ないと感じています。
ですが、フォームオブジェクトにて、ユーザーフォームの作成・編集を行う場合はこのプロパティウィンドウの使用頻度は高まります。
プロパティウィンドウの項目はオブジェクトによって異なり、多岐に渡りますがユーザーフォームを作成する場合には入力制限やオブジェクト名の変更を行ったりもこのプロパティウィンドウの項目から変更します。
いきなり全ての項目を覚えるよりは、実際に作りながら覚えていくとアウトプットも行いつつ、定着化することもできるでしょう。
コードウィンドウ
コードウィンドウはVBEのメインウィンドウといっても過言ではありません。
このウィンドウでは、VBAの記述やマクロの作成、編集を実際に行う画面です。
また、コードウィンドウはさらに、
・オブジェクトボックス
・プロシージャボックス
・インジケーターバー
と3つの構成に分かれています。
3つそれぞれの画面構成と概要については下図をご覧ください。
ローカル、イミディエイト、ウォッチウィンドウ
この3つのウィンドウはVBEのデフォルトで表示されているわけではなく、表示メニューよりウィンドウ画面を表示することができます。
これら3つのウィンドウに共通するのが、VBAでコードを記述する際に「変数」や式の値が何なのかを確認するために使用します。
名称 | 概要 |
イミディエイトウィンドウ | Debug.printを利用して、指定した変数などの値を確認することができる。 また、ウィンドウ内で「?●●(変数名)」と記述して、エンターを押すことで確認したい変数等の値が表示されます。 |
ローカルウィンドウ | 実行中のプロシージャで使用している変数すべての値を確認することができます。 |
ウォッチウィンドウ | 指定したオブジェクトや変数、式の値をプロシージャを実行中に確認することができます。 |
特に私がVBAでマクロを作成するときは、イミディエイトウィンドウはよく利用しています。
マクロ作成時、変数を複数使って長いコードを作成するときは特に、変数に想定通りの値が入っているかを確認する必要が出てきます。
その際に、イミディエイトウィンドウを利用することで特定の変数の値をすぐに確認することができるのでオススメです。
実際にマクロはどう作成する?マクロの単位とは?
ここまでは、VBEの画面を構成するウィンドウについて解説してきました。では、実際にマクロを作成するにあたって、「コードウィンドウ」でどのようにVBAでコードを記述していけばいいのでしょうか?
基本的には、「標準モジュールオブジェクト」のコードウィンドウにてコードを記述することが一般的ですが、「Sub~End sub」のプロシージャで囲われた範囲にコードを記述してマクロを作成していきます。
プロシージャ?と新しい用語が出てきました。
プロシージャとは一言でいうと、
マクロを構成する単位
のことです。
基本的にこのプロシージャは
Sub マクロ名()
マクロの手順
End sub
の形で構成されており、「マクロの手順」の部分に実際にコードを記述してマクロ作成を行っていきます。
※これ以外にも、「Function」や「Private sub」といったプロシージャの構成もあります。
ここでは、まずは基本となる「Sub~End sub」の形式でマクロを作成できるんだと覚えておきましょう。
VBAをさらに学ぶには?
Excel VBAでマクロを作成するには欠かせないVBEですが、その機能は多岐に渡ります。
今回の内容で触れていないこともまだまだあります。
ですが、実際はVBEの機能もVBAでコードを書きながら、使い方や新しい機能を学んでいくことが「VBE」の使い方を取得する近道となります。
そのためには、VBAでコードの記述やマクロを作ってみることが必要となってきますが、
「まだコードを書ける自身がない…」
「学習を始めたばかりで、できるか不安…」
と思われる方もいらっしゃるのではないでしょうか?
実際にどんな学習法がいいのか、学習方法が不明確であったり、
スキルが身についているのか、アウトプットできないままだと不安に思うこともあると思います。
では、どのような学習を行えばよいのでしょうか…?
私は、Udemyというサイトを活用してExcel VBAの学習を行いました。
Udemyでは、e-ラーニング形式で動画を視聴しながら学習することができます。
コンテンツでは学習しながら実習形式で簡単なアウトプットを繰り返しながら学ぶこともできます。
かつ、「Q&A」という機能を使うことで講師にわからない点を質問することも可能です。
また、コンテンツは サブスクリプション型ではなく、1コンテンツ買い切り型ですので月額費用が掛かるわけではありません。
とはいえ、UdemyでもExcel VBAに関するコンテンツは多くあります。
その中でも「これからVBAについて学習したい。」、「VBAを学び始めたばかり」の方におすすめは、
Excel VBA第1弾エクセルが自動で仕事する!マクロの魔法 文系・非IT職もできるプログラミング
Excel VBA第2弾請求書を1クリックで出力するマクロを作成!文系・非IT職もできるプログラミング
です。
私も「エクセル兄さんのコンテンツ」で学習してみて、実際にExcel VBAでのマクロを作成することができるレベルまでスキルアップすることができました。
VBAについてさらにスキルアップを目指したい方、これから学んでみようと思っている方は是非活用してみてください!
まとめ
今回は、普段マクロの作成やVBAでコードを記述するときに必須の「VBE」について解説してきました。
初歩的で、比較的基礎的なことや利用頻度の高いものを中心の内容でしたが、VBEはそれだけ機能が多岐に渡っています。
全てを使いこなせるとベストですが、なかなかそうはいかないのも事実です。
まずはVBAでコードを書きながら、よく使うVBEの機能を取得し、そこから範囲を広げてより便利にVBEを使えるようになると、マクロ作成やコード記述のスピードも向上していきます。
Excel VBAのスキルも伸ばしつつ、VBEの使用スキルも伸ばせるよう取り組んでいきましょう。
コメント