IT系/VBA/基本/開発環境(VBE)

Last-modified: 2021-12-30 (木) 16:12:57

目次


概要

開発環境(VBE)に関するVBAのTIPS。

VBEとは

VBEは、「Visual Basic Editor」の略。マクロを作成・編集するためのソフト。
Excel/Word/Access/Powerpoint等のMicrosoft Office製品に標準で同梱されている。

VBEの起動

  • Excelの開発タブ*1から、「Visual Basic」を選択。
  • [Alt]+[F11]キーでショートカットも可能。もう一回押すとExcelに戻る。
  • [Alt]+[Q]キーで「Visual Basic」を終了。

VBEの画面

  • メニューバーの[表示]から各ウィンドウの表示/非表示が切替可能。

プロジェクト エクスプローラー

  • プロジェクト、およびプロジェクトに格納され、各プロジェクトから参照されるすべての項目の階層リストを表示。
  • メニューバーの[表示]→[プロパティウィンドウ]で表示。
  • Ctrl + R で表示。

コード ウィンドウ

  • コードの記述、表示、および編集を行うテキストエディタ。
  • プロジェクト エクスプローラでフォーム/モジュールをダブルクリックするか、選択して[コードの表示] ボタンをクリックすると表示される。
  • キーワードやコメントなどの文字色は変更可能。
    • メニューバーの[ツール]→[オプション]の[エディタの設定]タブで変更する。
  • メニューバーの[表示]→[コード ウィンドウ]で表示。
  • F7 で表示。

プロパティ ウィンドウ

  • 左側の各設定項目に関して、右側で選択/入力して設定。
  • メニューバーの[表示]→[プロパティウィンドウ]で表示。
  • F4 で表示。

イミディエイト ウィンドウ

  • コンソールの役割。
  • メニューバーの[表示]→[イミディエイト ウィンドウ]で表示。
  • Ctrl + G で表示。
  • コードを入力して、Enter キーを押すと、そのコードを実行できる。
  • VBA実行中は、実行中のプロシージャー内で実行される。
  • 実行していない時は、新規の標準モジュール(Option Explicitがない)上で実行される。
  • ?に続けて変数を書いてEnterすることで値を表示。
  • プロシージャーを直接起動することも可能。
  • コード中の「Debug.Print」文の内容を出力。
    Debug.Print 変数・定数・式
    Debug.Print xxx; xxx
    Debug.Print xxx, xxx
    「;」(セミコロン)に続けて書かれた変数・定数・式の値は、改行されずに表示される。
    「,」(カンマ)に続けて書かれた変数・定数・式の値は、一定も字数間隔をあけて表示される。
    セミコロンやカンマは、イミディエイトウィンドウで?で表示する場合でも使える。

ウォッチ ウィンドウ

  • デバッグの作業中に変数の値を「継続的に値を監視する」という必要がある場合に使用。
  • メニューバーの[表示]→[ウォッチ ウィンドウ]で表示。
  • デバッグを中断したところで「ウォッチウィンドウ」を表示させて、右クリックから「ウォッチ式の追加」を選択して変数やプロパティを登録すると、値の参照が可能になる。
  • コードウィンドウから、ドラッグ&ドロップで追加も可能。

ローカル ウィンドウ

  • ローカルウィンドウを表示させておくと変数の値と型をまとめて確認できる。
  • メニューバーの[表示]→[ローカル ウィンドウ]で表示。
  • オブジェクトは、+をクリックして展開し、オブジェクトのプロパティを表示可能。
  • メソッドは表示されない。
  • 引数を指定しないと値が表示できないプロパティは表示されない。

オブジェクトブラウザ

  • オブジェクトに対するプロパティやメソッドを実際にライブラリから参照して確認するツール。
  • F2 で表示。

環境設定

背景色・フォントを調整

  • 「ツール」→「オプション」を選択し、「エディターの設定」タブを開く。
  • 「コードの表示色」を選択して、「背景」の色を選択。
  • 「キーワード」の「前景」で文字色を「赤」に指定。
  • 「識別子」の「前景」で文字色を「青」に指定。

編集ツールバーを表示

  • 「表示」→「ツールバー」→「編集」を選択して編集ツールバーを表示。
    選択している範囲を一気にコメントアウトできる「コメント ブロック」とコメントの解除ができる「非コメント ブロック」が使えるようになる。

コンパイルエラー時にポップアップが出ないようにする

  • 「ツール」→「オプション」を選択し、「編集」タブの「コードの設定」にある「自動構文チェック」のチェックを外す。

変数の明示的な宣言を強制するために、「Option Explicit」を自動で挿入

  • 「ツール」→「オプション」を選択し、「編集」タブの「コードの設定」にある「変数の宣言を強制する」にチェック。
  • Excel2013以降では、最初からチェックが外れている。

ショートカットを設定する

  • ツールバーを右クリックして、[ユーザー設定]を選択。
  • 「ユーザー設定」ダイアログが開くので、そのままツールバーのコメントブロックのアイコンをクリックする。
  • 「選択したボタンの編集」を選択して、「名前」の末尾に (&C) と入力する。
  • 「イメージとテキストを表示」または「テキストのみ表示」を選択する。
  • 「閉じる」ボタンで「ユーザー設定」ダイアログを閉じる。
  • これで、 Alt + C でコメントブロックを実行できるようになる。
  • C 以外のキーに設定したい場合は、 (&T) とか (&K) といった感じで設定。
  • 注意:ツールバーにボタンが表示されていないと、ショートカットが働かない。
    もし、設定したのにショートカットがきかない場合は、ツールバーにボタンが表示されているか確認する。

オプション設定の詳細

「メニュー」→「ツール」→「オプション」で表示されるオプションの詳細。

タブカテゴリ項目説明
編集コードの設定自動構文チェックコード記述時に1ステートメント確定時(Enterやカレント行をずらした時)に、都度文法チェックを行うかどうかの指定。
チェックを付けておくと、確定されたそのステートメントを都度チェックを行い、構文エラー(赤字エラー)があると、警告メッセージが表示される。
Excel2013以降はデフォルトでチェックが外れている。
変数の宣言を強制する新規にモジュール作成時、自動的にモジュールの先頭に、「Option Explicit」を挿入するかどうかの指定。
デフォルトでチェックが外れている。
自動メンバー表示オブジェクトに続けて「.」(ピリオド)を入力した時に、オブジェクトのメンバーを入力候補として表示するかどうかの指定。
プロパティの設定値が列挙値の場合にも表示される。デフォルトでチェックされている。
自動クイック ヒントオブジクトのプロパティ・メソッド、関数の入力時に、どのような引数になっているかのヒントを表示するかどうかの指定。
デフォルトでチェックされている。
自動データ ヒントVBAをステップ実行(F8)やデバッグ等で一時停止しているとき、マウスポインタを変数やプロパティに合わせる(その上で停止させる)事で、その中身の値をヒント表示するかどうかの指定。
デフォルトでチェックされている。
自動インデント直前の行の先頭と同じ位置まで自動でインデントするかどうかの指定。
チェックが付いていないと、インデントされずに常に先頭になる。デフォルトでチェックされている。
タブ間隔タブ(Tab)キーでインデントされる間隔を文字数で指定。デフォルトは4。
ウィンドウの設定テキスト エディターでのドラッグアントドロップVBAコードの選択部分をドラッグ アンド ドロップで移動可能とするかどうかの指定。
実際には、イミディエイト ウィンドウや、ウォッチ ウィンドウへのドラッグで使用。デフォルトでチェックされている。
モジュール全体を連続表示モジュール内の全てのプロシージャーを連続して表示するかどうかの指定。
チェックを外すと、選択しているプロシージャのみが表示されるようになる。デフォルトでチェックされている。
VBEの左下のアイコンで、表示切替え可能。
プロシージャの区分線モジュール全体を連続表示した場合に、プロシージャー間に区分線を表示するかどうかの指定。デフォルトでチェックされている。
エディターの設定コードの表示色(全般)VBAを記述するエディタ部分の体裁を設定。
前景は、文字色。背景は、文字の背景。
インジケーターは、コードの左の縦のグレー部分。
標準コードこれ以降で設定できるコード以外のすべて。コードの無い行の背景もここでの指定が有効となる。
選択された文字選択された文字。
構文エラー構文エラー、つまり、文法的に書き方としてエラーがある場合。
次のステートメントVBAをステップ実行(F8)やデバッグ等で一時停止しているとき、次に実行されるステートメント。
ブレークポイントVBAの実行を一時的に中断することができるブレークポイントを設定(F9)しているステートメント。
コメント'(シングルクォーテーション)から始まるコメント。
キーワードVBAに用意されているステートメント等の予約語。
識別子変数、定数、プロシージャー、プロパティ、メソッド。
ブックマークブックマークを設定したステートメント。この設定は、インジケーターに対してのみ有効。
呼び出し元FunctionやSubプロシージャーが他のプロシージャーから呼ばれている場合の呼び出し元のプロシージャー。
インジケーターの緑の右三角のステートメント。この設定は、インジケーターに対してのみ有効。
フォント、サイズ-コードのフォントとサイズを指定。
インジケーターバー-コードの左側グレーの余白部分を表示するかどうかの指定。
全般グリッドの設定-ユーザーフォームのグリッド(点々)表示を指定。
グリッドの間隔(はば、高さ)と、コントロールをドラッグで配置した時に、グリッドに合わせるかどうかの指定が可能。
ツールヒントの表示-ツールバーのアイコンにマウスポインターを置いたときにツールヒントを表示するかの指定。
編集後の継続状態の破棄を通知モジュールレベル変数は、Endステートメントや「デバッグ」で終了しない限り、値を保持するが、そもそものモジュールレベル変数の記述を変更をした場合は、変数が変更になるので、保持していた値は破棄される。
このような編集によりモジュールレベル変数の値が破棄される場合に通知するかどうかの指定。
エラートラップエラー発生時に中断On Errorにかかわらず、エラー発生時に中断。全てのモジュールが対象。
デバッグをしていると、On Errorがあるために、本来のエラー発生個所の特定に窮する場合がある。そのような場合に、ここにチェックを付けることで、On Errorにかかわらず、エラー発生箇所で中断させることができる。
クラス モジュールで中断ハンドルされない(On Errorがない)エラーがクラスモジュールで発生すると、エラーが発生したコード行でプロジェクトを中断。
エラー処理対象外のエラーで中断エラー処理対象外とは、具体的にはOn Error対象外ということ。
エラー発生時、On Errorの制御範囲であればそれに従い、On Errorの制御範囲外では中断する指定。
デフォルトで選択されている。
コンパイル順次コンパイル開始前にプロジェクトを完全にコンパイルするか、必要に応じてコードをコンパイルするかを指定。
バックグラウンド コンパイル実行時にアイドル時間を使用して、バックグラウンドでのプロジェクトのコンパイルを完了。
ドッキングドッキング可能-それぞれのウィンドウをドッキングさせるかを指定。
ここでチェックの付いているウィンドウはドッキング可能となる。

操作

標準モジュールの追加

  • Visual Basic Editorのメニューで[挿入]-[標準モジュール]を選択。
  • または、プロジェクト内を右クリックで[挿入]→[標準モジュール]。
  • [Alt]→[I]→[M]の順にキー操作でも実行可能。
  • 初期名は「Module[n]」。[n]は数字。

標準モジュールの名称変更

  • プロパティウインドウで行う。
  • 「(オブジェクト名)」を編集。半角全角使用可能。ただし、先頭に数字は使えず、記号はアンダーバー(_)のみ。

標準モジュールの削除

  • プロジェクト内の削除したい標準モジュールを右クリック→「XXXの解放」(XXXはモジュール名)。
  • [Alt]→[F]→[R]の順にキー操作でも実行可能。

プログラムの実行

Visual Basic Editorで以下のいずれかを行う。

  • メニューバーで[実行]-[マクロの実行]を選択
  • ツールバーの[マクロの実行]ボタンを押下
  • F5ボタンを押下

コンパイルチェック

  • Visual Basic Editorのメニューバーで[デバッグ]-[VBAProjectのコンパイル]を選択
  • [Alt]→[D]→[L]の順にキー操作でも実行可能
  • 「コンパイル」はVBAでは事前に行なうものではなく、実行時に動的に行なわれる。 これを利用してチェックだけ行うのが「コンパイルチェック」。
  • 実行時に何もメッセージが表示されなければ構文エラーなし。

デバッグ

ブレークポイントを設定する

  • エディターの左端をクリックすると、ブレークポイントを設定できる

デバッグ中の操作

キー操作
F8ステップイン
Shift + F8ステップオーバー
F5再開

変数に代入されている値を確認する

  • 変数の上にマウスカーソルを乗せると、変数に代入されている値が表示される
    「表示」→「ウォッチウィンドウ」でウォッチウィンドウを表示できる
    「ウォッチウィンドウ」上で右クリックして、「ウォッチ式の追加」を選択すると、ダイアログが表示されるのでウォッチしたい変数の名前を入力して「OK」をクリックする
    ウォッチウィンドウで変数の中身を見れるようになる
  • イミディエイトウィンドウで変数の値を出力させることもできる
    ? の後ろに確認したい変数名を記述して Enter で、内容を確認できる

デバッグ中にVBAが途中終了した場合の表示設定を元に戻す

デバッグ中にVBAが途中終了した場合、Application.ScreenUpdatingがTrue状態に戻らない場合や、イベント処理の中で、Application.EnableEventsがFalseとしている場合等に、設定を戻す方法。
イミディエイトウィンドウで以下を入力。

Application.ScreenUpdating = True
Application.EnableEvents = True

ショートカットキー

  • 全般
    VBEの起動(ワークシート)Alt + F11 キー
    VBEの終了(VBE)Alt + Q キー
  • 表示切替
    コードウィンドウの表示F7 キー
    イミディエイトウィンドウの表示Ctrl + G キー
    プロパティウィンドウの表示F4 キー
    プロジェクトエクスプローラの表示Ctrl + R キー
  • コードウィンドウ内でのカーソル移動
    モジュールの先頭に移動Ctrl + Home キー
    モジュールの最後に移動Ctrl + End キー
    前のプロシージャに移動Ctrl + 上方向 キー
    次のプロシージャに移動Ctrl + 下方向 キー
    1画面上に移動Ctrl + PageUp キー
    1画面下に移動Ctrl + PageDown キー
    行頭に移動Home キー
    行末に移動End キー
    右の単語に移動Ctrl + 右方向 キー
    左の単語に移動Ctrl + 左方向 キー
  • コード編集関連
    入力候補の表示Ctrl + Space キー
    行の削除Ctrl + Y キー
    単語の最後まで削除Ctrl + Delete キー
    インデントを付けるTab キー
    インデントを戻すShift + Tab キー
    クイックヒントの表示Ctrl + I キー
    オブジェクトブラウザの表示F2 キー
    定義の表示Shift + F2 キー
    直前の場所に戻るCtrl + Shift + F2 キー
    次を検索F3 キー
    前を検索Shift + F3 キー
  • プロシージャ実行関連
    マクロの実行(ワークシート)Alt + F8 キー
    プロシージャの実行プロシージャ内でF5 キー
    ステップインの実行F8 キー
    ブレークポイントの実行F9 キー
    すべてのブレークポイントのクリアCtrl + Shift + F9 キー
    無限ループ時の強制中断Ctrl + Pause キー、 Ctrl + Break キー、 Esc キー

VBEを使いこなす

えくせるちゅんちゅんのことりちゅん氏の使いこなしっぷりがすごいので、以下のサイトを参考にする。

TIPS

別ページの一覧を入れる。

'IT系/VBA/基本/開発環境(VBE)/' には、下位層のページがありません。

リンク集

重複を恐れないリンク集。

動画

開発環境・開発ツール

VBE

開発補助ツール

ソース管理

ソース暗号化(VBScript)

その他メモ



*1 表示されていない場合は「ファイル」タブ→「オプション」→「リボンのユーザ設定」で、「開発」タブにチェック