エクセルVBAのVBE構造について解説しています。
<< マクロとVBAの関係 :前の記事
前回は、マクロとVBAの関係について解説しました。今回はVBAのコードを記述するために必要なVBE(Visual Basic Editor)について解説しています。VBEには様々な機能がありますが、はじめから全てを覚える必要はありません。プログラミングをこなすことで徐々にそれぞれの機能について理解していきますので、最低限必要な機能だけをまずは覚えましょう。
VBE(Visual Basic Editor)はVBAでコードを記述するために必要なソフトウェアです。マクロの編集はすべてVBEで行います。
VBEを起動させるにはAlt+F11を押下します。「ツール」→「マクロ」→「Visual Basic Editor」でも起動できますのが、効率化を図るためになるべくショートカットを利用しましょう。
他にも、Alt+F11の押下を繰り返すとEXCEL←→VBEの画面を切り替えることができますので、こちらも覚えておきましょう。
また、VBEの画面は主に以下の3つに分類されます。
エクセルVBAのVBE画面の左上に位置するウィンドウでプロジェクトエクスプローラと言います。1つのワークブックを1プロジェクトとして、そのプロジェクト内のオブジェクト一覧を表示します。
プロジェクトエクスプローラには、以下の5つのオブジェクトがツリー上に表示されます。それぞれに役割がありますが、一般的にVBAのコードを記述する場合は、標準モジュールオブジェクトに記述するということを覚えておきましょう。
エクセルVBAのVBE画面の左下に位置するウィンドウでプロパティウィンドウと言います。プロジェクトエクスプローラでオブジェクトを選択すると、そのオブジェクトに関するプロパティを表示します。また、そのプロパティを編集することもできます。
エクセルVBAのVBE画面の右側に位置するウィンドウでコードウィンドウと言います。こちらにVBAのコードを記述していきます。複数のマクロを記述する場合は、マクロとマクロの間に区分線が引かれます。
また、画面は以下のように構成されています。「オブジェクト」「イベント」「プロシージャ」「ブレークポイント」については後ほど詳しく解説しますので、ここでは、コードウィンドウがどのように構成されているかだけ覚えましょう。
項目 | 説明 |
---|---|
オブジェクトボックス | 現在選択しているオブジェクトに関連づけられているオブジェクトを表示します。 |
プロシージャボックス | 現在選択しているオブジェクトに関連づけられているイベントおよびプロシージャを表示します。 |
インジケータバー | クリックすることでブレークポイントの設定・解除ができます。 |
エクセルVBAのVBEには、他にも以下のようなウィンドウが用意されています。それぞれ詳細については後ほど詳しく解説しますので、このようなウィンドウが用意されていることを覚えましょう。
ウィンドウ名 | 用途 | 内容 |
---|---|---|
プロジェクトエクスプローラ | モジュールの管理 | ブックにまとめられたプロジェクトやオブジェクトのモジュールを管理するウィンドウ |
プロパティウィンドウ | プロパティの設定 | 選択しているプロパティを設定するウィンドウ |
コードウィンドウ | コードの記述 | 標準モジュールなどにVBAのコードを記述ウィンドウ |
ユーザーフォームウィンドウ | ユーザーフォームの作成 | ユーザーフォームにコントロールを配置するウィンドウ |
イミディエイトウィンドウ | バグのチェックとデバッグ | VBAのコードを簡単に実行するときに使用するウィンドウ。Debugオブジェクトを利用してあらかじめ指定した変数などの値を確認することもできます |
ローカルウィンドウ | バグのチェックとデバッグ | 実行中のプロシージャで使用しているすべての変数の値を確認するウィンドウ |
ウォッチウィンドウ | バグのチェックとデバッグ | ユーザー自身が指定したオブジェクトや変数、式の値をプロシージャ実行中に確認するウィンドウ |
オブジェクトブラウザ | オブジェクトの検索 | オブジェクトのプロパティ、メソッドなどを検索するためのウィンドウ |
実際にマクロを記述する際には、一般的に標準モジュールオブジェクトに記述すると説明しましたが、モジュールとはマクロを保存しておくための単位のことです。
マクロを書くときの「机」がVBEであれば、マクロを書く「紙」がモジュールの役割になります。モジュールにもいくつか種類がありますので、覚えましょう。
シートモジュールには、ワークシートのイベントを記述する際に利用するモジュールです。
ブックモジュールには、ワークブックのイベントを記述する際に利用するモジュールです。
標準モジュールには、マクロ記録機能を利用した際に記録されるモジュールです。基本的には直接入力してマクロを記述する際も標準モジュールを利用します。
クラスモジュールは、オブジェクト指向型の言語の特徴の1つであるクラスを作成するモジュールです。クラスとは、よく設計図のようなものと説明されますが「オブジェクトの定義」のことを指します。
オブジェクトにはオブジェクトの属性を表すプロパティ、動作を表すメソッド、オブジェクトに対する操作に応じて発生するイベントがあります。このようなオブジェクトの機能はすべて「オブジェクトの定義」としてクラスにまとめられています。
クラスはオブジェクトの定義をまとめた「オブジェクトの設計図」ですので、クラス自身に実態はありません。クラスを利用するには実態にあるオブジェクトとして扱うために複製する必要があります。このクラスの複製をインスタンスと言います。
こちらを理解するにはまったく説明が足りませんが、クラスモジュールというものがあることは頭の片隅にでも入れて置いてください。
フォームモジュールは、ユーザーフォームの操作を記述するためのモジュールです。ユーザーフォームは、エンドユーザーが操作しやすいように作業するための画面のことを指します。入力画面を設けることは、入力ミスやイレギュラーを防止するためにとても有効な方法です。また、エンドユーザーにとっても使いやすい画面は作業の効率化にもなります。
VBEでは様々なショートカットが用意されています。ショートカットは作業効率がグンと上がりますので、是非覚えましょう。
ショートカットキー | 内容 |
---|---|
「Tab」 | インデントを挿入する |
「Shift」+「Tab」 | インデントを戻す |
「Ctrl」+「Space」 | 入力候補を表示する |
「Ctrl」+「I」 | クイックヒント・パラメータヒントを表示する |
「Ctrl」+「Shift」+「I」 | ショートカットメニューを表示する |
「Ctrl」+「J」 | プロパティ・メソッドを表示する |
「Ctrl」+「Shift」+「J」 | 定数の一覧を表示する |
「Shift」+「F9」 | クイックウォッチを表示する |
「F2」 | オブジェクトブラウザを表示する |
「Ctrl」+「C」 | コピーする |
「Ctrl」+「V」 | 貼り付けをする |
「Ctrl」+「F」 | 検索をする |
「Shift」+「F4」 | 次を検索する |
「Ctrl」+「H」 | 置換をする |
「Ctrl」+「Z」 | 前の処理を元に戻す |
「Ctrl」+「A」 | すべて選択する |
「Ctrl」+「Y」 | カーソルがある行を行単位で削除する |
「Ctrl」+「Delete」 | カーソル位置から単語単位で削除する |
ショートカットキー | 内容 |
---|---|
「Home」 | 行頭へカーソルを移動する |
「Ctrl」+「Home」 | モジュールの先頭へカーソルを移動する |
「End」 | 行末へカーソルを移動する |
「Ctrl」+「End」 | モジュールの末尾へカーソルを移動する |
「PageUp」 | 1画面分上へ移動する |
「PageDown」 | 1画面分下へ移動する |
「Ctrl」+「↑」 | 前のプロシージャを選択する |
「Ctrl」+「PageUp」 | 前のプロシージャを選択する |
「Ctrl」+「↓」 | 次のプロシージャを選択する |
「Ctrl」+「PageDown」 | 次のプロシージャを選択する |
「Ctrl」+「→」 | 右の単語の末尾へカーソルを移動する |
「Ctrl」+「←」 | 左の単語の先頭へカーソルを移動する |
ショートカットキー | 内容 |
---|---|
「Ctrl」+「R」 | プロジェクトエクスプローラを表示する |
「F4」 | プロパティウィンドウを表示する |
「F7」 | コードウィンドウを表示する |
「Ctrl」+「G」 | イミディエイトウィンドウを表示する |
ショートカットキー | 内容 |
---|---|
「F8」 | ステップイン |
「Shift」+「F8」 | ステップオーバー |
「Ctrl」+「Shift」+「F8」 | ステップアウト |
「Ctrl」+「F8」 | カーソルの前まで実行する |
「F9」 | ブレークポイントを設定・解除する |
「Ctrl」+「Shift」 | すべてのブレークポイントを解除する |
「F5」 | Subプロシージャ及びユーザーフォームを実行する |
「Ctrl」+「Break」 | 処理を中断する |
ショートカットキー | 内容 |
---|---|
「Ctrl」+「S」 | 上書き保存する |
「Ctrl」+「P」 | 印刷する |
「Ctrl」+「M」 | ファイルをインポートする |
「Ctrl」+「E」 | ファイルをエクスポートする |
「Ctrl」+「F11」 | Excel・VBEを交互に表示する |
こちらでは、エクセルVBAのVBE(Visual Basic Editor)について解説しました。色々なキーワードがでてきましたが、それぞれに役割や意味があるので、その都度理解していけばよいかと思います。次回は実際にマクロに触れていきますのでお楽しみに!
次の記事: マクロの記録と実行 >>
IEのデータ収集&自動操作のプログラミング本はこの1冊だけ!IEの起動やポップアップウィンドウ、表示を制御する基本的なコードはもちろん、テキストボックスやラジオボタン、表、ハイパーリンクなどのHTML部品を制御する方法など、自動操作に欠かせないノウハウを丁寧に解説。
ExcelのVBAについてのQ&A掲示板↑ExcelのVBA全般について分からない事があればこちらの掲示板よりご質問ください。
VBAのIE操作入門↑ExcelのVBAをマスターできたら、エクセルVBAのIE操作にも挑戦してみてください。
こちらでは、エクセルVBAの事例で利用したステートメントをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。
こちらでは、エクセルVBAの事例で利用したオブジェクトをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。
こちらでは、エクセルVBAの事例で利用したオブジェクトのプロパティをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。
こちらでは、エクセルVBAの事例で利用したオブジェクトのメソッドをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。
こちらでは、エクセルVBAの事例で利用したオブジェクトのイベントをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。