■ VBEditorを使用、操作しよう!
Excel VBAの唯一の開発環境であるVBE(Visual Basic Editor)。
この開発環境を、いかに有効に使いこなせるかでExcel VBAにおける開発効率が格段に違ってきます。
長年、Excel VBAで開発を行ってきた人でも意外に知らないVBEの機能があったりします。
今回は、VBEを使いこなすことでVBAの開発効率をより高めるという視点から解説を行います。
■VBEの起動の仕方と終了方法
VBEの起動の仕方はいろいろあります。一般的なものはツールメニューからマクロ>Visual Basic Editorを選択しますが(※ Excel2007では、開発リボンからVisual Basic Editorアイコンをクリック)、より高速に起動するには、ショートカットキーの「Altキー+F11キー」押下を使用します。
VBEを終了するにはファイルメニュー>終了してMicrosoft Excelに戻るを選択するか、「Altキー+Qキー」を押下してショートカットキーで終了させます。
■コードウィンドウの操作
VBEの中で、実際のVBAコードを記述する場所がコードウィンドウです。
コードウィンドウ内ではショートカットキーが利用できます。また、自動メンバ表示や、自動クイックヒント表示の機能を利用することができます。
(その場合は、ツール>オプション>編集タブより、自動メンバ表示、自動クイックヒント、チェックボックスをオンにする必要があります)
コードウィンドウが表示されていないときは、表示メニュー>コードを選択するか、プロジェクトエクスプローラよりVBAコードを記述するオブジェクトをダブルクリックすることで表示できます。
コードウィンドウは分割して表示したり、複数のコードウィンドウを並べて表示することができます。その場合ウィンドウメニューより、分割、または上下に並べて表示・左右に並べて表示、を選択します。
VBEで利用できるショートカットキーは次のとおりです。
Tabキー |
インデントを挿入する |
Shiftキー+Tabキー |
インデントを削除する |
Ctrlキー+Xキー |
切り取り |
Ctrlキー+Cキー |
コピー |
Ctrlキー+Vキー |
貼り付け |
Ctrlキー+Zキー |
操作を元に戻す |
Ctrlキー+Aキー |
すべて選択する |
Ctrlキー+Yキー |
現在の行を削除する |
Ctrlキー+Deleteキー |
単語を削除する |
Ctrlキー+↓キー |
次のプロシージャへ移動する |
Ctrlキー+↑キー |
前のプロシージャへ移動する |
Ctrlキー+Homeキー |
モジュールの先頭にカーソル移動する |
Ctrlキー+Endキー |
モジュールの最後へカーソル移動する |
Ctrlキー+Spaceキー |
入力候補を表示する |
その他のショートカットキー操作
・単語にカーソルを合わせCtrlキー+Fキー押下で、その単語を検索する検索ダイアログを表示します。Ctrlキー+Hキー押下すると置換ダイアログを表示します。
・単語にカーソルを合わせF1キーを押下することでヘルプを表示します。F2キーを押下することでオブジェクトブラウザを表示します。
・ユーザー定義関数にカーソルを合わせ、Shiftキー+F2キーを押下することでユーザー定義関数のプロシージャに移動します。Ctrl+Shift+F2キーを押下すると元の位置に戻ります。
・引数のないSubプロシージャ内でF5キーを押下することでそのプロシージャを実行します。F8キーを押下した場合、ステップイン実行します。ステップイン実行中にカーソルを移動させ、Ctrlキー+F8キーを押下すると、そのカーソル位置まで一気に実行します。
・プロシージャを強制終了させる時は、Ctrlキー+Breakキー押下、またはEscキー押下でプロシージャの実行を強制終了させることが可能です。
■イミディエイトウィンドウの操作
イミディエイトウィンドウを利用することで、次のような操作が可能になります。
・簡単な計算式を実行する
・変数を利用する
・プロシージャや関数を呼び出す
・Ifステートメントを利用する
・Forステートメントを利用する
また、VBAコード内にDebug.Printステートメントを記述することで、イミディエイトウィンドウに構造体や変数の値を出力させることが可能です。
イミディエイトウィンドウが表示されていないときは、表示メニュー>イミディエイトウィンドウで表示できます。
(例)
イミディエイトウィンドウ内に「?100*2」と入力してEnterキーを押下します。
「200」が出力されます。
(例)
イミディエイトウィンドウ内に「MyLng=100」と入力してEnterキーを押下します。次に「?MyLng*2」と入力してEnterキーを押下します。「200」が出力されます。
※ イミディエイトウィンドウ内でDimステートメントによる変数の宣言は行えません。イミディエイトウィンドウ内で使用する変数はVariant型になります。
(例)イミディエイトウィンドウ内に「?mid("A200",2,3)」と入力してEnterキーを押下します。「200」が出力されます。
(例)
Functionプロシージャをイミディエイトウィンドウ内から呼び出します。
標準モジュール内に以下のFunctionプロシージャが記述されている場合、イミディエイトウィンドウ内に「?test(100)」と入力してEnterキーを押下すると「200」が出力されます。
Function test(ByVal i As Long) As Long
test = i * 2
End Function
(例)
Subプロシージャをイミディエイトウィンドウ内から呼び出します。
標準モジュール内に以下のSubプロシージャが記述されている場合、イミディエイトウィンドウ内に「test(100)」と入力してEnterキーを押下すると「200」が出力されます。
Sub test(ByVal i As Long)
Debug.Print i * 2
End Sub
■ローカルウィンドウの操作
ローカルウィンドウを利用することで、プロシージャ内のすべての変数の値を確認できます。ローカルウィンドウは表示メニュー>ローカルウィンドウで表示することができます。
ローカルウィンドウが表示されていないときは、表示メニュー>ローカルウィンドウで表示できます。
変数の値を確認したい位置にブレークポイントを設定するか、ステップイン実行を使用してローカルウィンドウ内の変数の値を確認します。
■ウォッチウィンドウの操作
値を確認したい変数を選択し、右クリックします。メニュー内のウォッチ式の追加を選択します。ウォッチ式の追加ダイアログが表示されるので項目を確認後、OKクリックしウォッチウィンドウに変数を追加します。
ウォッチウィンドウが表示されていないときは、表示メニュー>ウォッチウィンドウで表示できます。
変数の値を確認したい位置にブレークポイントを設定するか、ステップイン実行を使用してローカルウィンドウ内の変数の値を確認します。
■デバッグの方法
VBEを利用したデバッグの方法は、いろいろあります。VBEでデバッグできるのはコンパイルエラーと実行時エラーの2種類になります。論理エラーをデバッグすることはできません。
※ エラー種類についての詳細な解説は、こちらを参照してください。エラー処理の重要性1、2
VBEで利用できるデバッグのための機能を紹介します。
・VBAProjectのコンパイル
デバッグメニュー>VBAProjectのコンパイルを選択することで使用できます。プロジェクト全体のコンパイルを行いコンパイルエラーを調査します。コンパイルエラーが見つかったとき、該当する部分が黄色でチェックされ表示されます。見つからなかったときは、特に画面に変化はありません。
・ブレークポイント(ブレイクポイント)の設定
ブレークポイントを設定すると、設定した行でプログラムの実行を一時中断します。
ブレークポイントを設定したい行を選択し、デバッグメニュー>ブレークポイントの設定/解除を選択するか、余白インジケーターバーをクリックするか、F9キーを押下することで、選択した行にブレークポイントを設定することができます。解除する場合は、ブレークポイントを設定した行を選択し、上記の処理を行うことで設定を解除できます。
※ ブレークポイントを複数設定していて、すべてのブレークポイントを一度に解除したいときは、デバッグメニュー>すべてのブレークポイントの解除を選択、またはCtrlキー+Shiftキー+F9を押下します。
・Stopステートメント
Stopステートメントを記述すると、記述した行でプログラムの実行を一時中断します。
プロシージャ内で中断させたい行に記述します。
・ステップイン実行
プログラムを、プロシージャ1行単位でステップ実行します。
F8キーを押下することで次のステップ(行)に処理が移ります。途中のステップ処理をとばしたいときは、ステップ処理をしない行の次にカーソルを置き、Ctrlキー+F8キーを押下することで、その行まで一気に処理を行うことができます。
■ヘルプを表示する
ヘルプを表示させたい用語にカーソルをうつし、F1キーを押下することでヘルプを表示させることができます。
(例)
Application.ScreenUpdating = False
ScreenUpdatingの部分にカーソルをうつし、F1キーを押下するとヘルプのScreenUpdatingプロパティ項目が表示されます。
■オブジェクトブラウザを操作する
F2キーを押下することで呼び出します。検索ボックスより検索することでオブジェクトについて調べることができます。
(例)
F2キーを押下してオブジェクトブラウザを表示させた後、検索ボックスにScreenUpdatingと入力、検索ボタン(双眼鏡のアイコン)をクリックします。ScreenUpdatingはApplicationクラスのプロパティであることが表示され、プロパティの説明が説明ペインに表示されます。
オブジェクトブラウザで表示されるアイコンは以下のとおりです。
・ライブラリ
・Enum
・定数
・クラス
・メソッド
・プロパティ
・ユーザー定義型
・イベント
■その他のVBEの表示項目
・プロジェクトエクスプローラ
プロジェクトやプロジェクトに格納されている参照項目(ユーザーフォームやクラスモジュールなど)がツリー構造の階層リストで表示されます。
プロジェクトエクスプローラが表示されていないときは、表示メニュー>プロジェクトエクスプローラで表示できます。
・プロパティウィンドウ
各オブジェクトのプロパティを表示します。プロパティウィンドウでプロパティを設定することも可能です。
プロパティウィンドウが表示されていないときは、表示メニュー>プロパティウィンドウで表示できます。
・オブジェクトボックス
コードウィンドウの左上部に位置します。選択できるオブジェクトの一覧を表示します。
・プロシージャボックス
コードウィンドウの右上部に位置します。オブジェクトボックスで選択したオブジェクトに対するイベント、または選択できるプロシージャの一覧を表示します。
以上。
今回、VBEに関する操作にスポットを当てて解説しました。
Excel VBAで、より効率的かつスマートに開発を行うために、VBEの機能を習熟することは重要な意味を持ちます。
今回の内容が、あなたの開発をさらに効率化する一助になればと思います。
|