Excel VBA VBE の設定と使い方

ホームページのトップに戻る目次


Excel VBA 目次

ツール・バーの設定
VBE のオプション
VBE の使い方
モジュール名を変更

索引

参考:開発環境は飾りではない
http://homepage1.nifty.com/rucio/main/dotnet/shokyu/standard40.htm
 

ツール・バーの設定

 VBE でマクロを書くためには、ツール・バーに、「編集」を追加します。
「編集」ツール・バーを追加
「編集」のツール・バーは、標準のツール・バーの右に並べると、ツール・バーの行が、一行で収まります。

 次に、メニューの「表示」→「ツールバー」の「ユーザ設定」を押すと、ユーザ設定画面が表示されます。
 ユーザ設定画面の「コマンド」タブで、ボタンを表示させて、マウスでつかんでドラッグして、メニューの右側に持って行ってマウス・ボタンを離すと、「ツール・ボタン」を一つずつ追加することができます。
 分類の「表示」を押すと、右側に表示されるボタンから、「イミディエート・ウインドウ」と「ローカル・ウインドウ」のボタンを、メニュー行の右に追加します。
 また、分類の「デバッグ」を押すと、右側に表示されるボタンから、「ステップ イン(F8)」と「ステップ オーバ」のボタンも、メニュー行の右に追加します。

 この結果、メニューとツール・バーは、下の画面のようになります。
ツール・バーのメニューの右に、ボタンを追加
 左側に表示される、「プロジェクト・エクスプローラ」では、「フォルダの切り替え」ボタンを使うと、フォルダ階層を、2段階(サブ・フォルダ構成)か、1段階に切り替えることができます。大量なマクロを作らない限り、一階層(サブ・フォルダ無し)で表示させたほうが、フォルダが閉じて、モジュールが見えなくなったりしないので、よいと思います。

この種類の目次に戻る↑ 索引へ↓ トップページに戻る

VBE のオプション

 VBE のオプションでは、以下が私の推奨設定です。
 「ツール」→「オプション」で、オプション画面を表示させます。

編集タブ  「編集」タブでは、以下のように設定します。

(1).「変数の宣言を強制する」にチェックを入れます。
 こうすると、標準モジュールを追加したとき、自動的に、「Option Explicit(明示的)」が、自動で入力されます。
 変数の定義を忘れることがないので、デバッグが容易になり、コード間違いを防ぐことかできます。

 変数の宣言しなくて良いようにすると、入力した名前が、全て変数として認識されます。このため、変数をタイプミスしても、分らなくて、変数名を書き間違えて、値のやり取りができないことにが発生します。
 「Option Explicit」にしておくと、つづりを間違えた変数は、登録できなくなります。

(2).「自動構文チェック」のチェックを外します。
エラー  チェックが入っていると、編集中に行の途中で改行したりすると、いちいち「コンパイル・エラー」のメッセージが表示されて、うっとおしいからです。
 エラー行は、「構文エラーの文字」属性で、色で判読できるし、マクロを書き上げた時点で「デバッグ」するので、いちいちコンパイル・エラーの画面を閉じる操作から開放されます。

 
(3).「タブ間隔」は、3にします。
 タブ間隔が、4だと、インデントが深くなると、右に行き過ぎるからです。
 また、タブ間隔が、2だと、インデントが少ないので、判読し難くなります。

(4).「ウインドウの設定」の部分では、「テキスト・エディタで、ドラッグアンドドロップ」のチェックを外します。
間違って操作して、コードがグチャグチャにならないようにするためです。
 
「標準コード」の配色  「エディタの設定」では、「標準コード」と「キーワード」と「識別子」の配色を、それぞれ別の状態にします。
 こうすると、変数(識別子)と、その他の部分の色が変わって、コードが判読しやすくなります。

 標準コードとは、数値や等号や括弧のことです。

 ここに示した例は、私のお気に入りの設定です。
 設定した結果は、右側のサンプルの小画面で確認できます。
 
選択された文字
 
構文エラーの文字
 
コメント
 
キーワード  コマンドなどの予約語です。
 
識別子  識別子とは、変数名やオブジェクトです。
 
この種類の目次に戻る↑ 索引へ↓ トップページに戻る

VBE の使い方

ヘルプの右下のステータスは「オフライン」に  VBE とは、Excel に付属する、VBA の編集支援ソフト (Visual Basic Editor) です。

 入力したコードについて、自動でヘルプを表示したり、入力候補を表示したりしてくれます。

 キーワードの内容を知りたいときは、キーワードの上にカーソルを置いて、「F1」キーを押すと、そのキーワードのヘルプ画面が表示されます。キーワードの辞書引きをしてくれるわけです。
 Office 2010 でヘルプ画面が表示されない場合は、右下のステータスを「オフライン」にして下さい。

 マクロのデバッグは、「ローカル ウィンドウ」を開いておいて、確認したい「ブレークポイント」から、「継続(F5)」もしくは、「ステップ イン(F8)」と「ステップ オーバ」を使って順次実行すると、変数の値の推移が分かり便利です。
 私は、「ブレークポイント」は、明示的に、コードに Stop と行を挿入しています。
不要になれば、コメントアウトすればよいし、また必要になれば、簡単に復活できるからです。
VBE(Visual Basic Editor)のデバッグ補助機能

変数の値が変化したとき自動的に止まります。  変数の内容が、想定外の動きをする場合などは、どこでそうなるのか分からないため、「ブレークポイント」を設定できないことが有ります。
 このようなときには、、ウオッチ式に登録すれば、この変数が変わった時点で、中断してくれます。
 この機能も簡単で便利です。操作は、該当する変数の所にカーソルを置いてマウス右クリックして表示されるメニューから選択して、右の画面を表示して、「ウオッチの種類」にチェックを入れます。

 Debug オブジェクトの Print メソッドを使うと、変数の値を、イミディエイト画面に出力させることができます。
 Debug.Print 変数名

 Debug オブジェクトには、もう一つ Assert メソッドが有ります。Assert メソッドは引数の真偽値を判定し、値が偽の場合に処理を中断します。
 Debug.Assert 真偽値

 参考:内田のHP→VBA→デバッグについて
http://members.jcom.home.ne.jp/rex-uchida/vba110.htm

 変数とサブルーチンやファンクションとの関係を、プログラム開発関連の項で紹介した、VBA_VariableProcedureXref を使って出力しておくと、デバッグが容易になります。

この種類の目次に戻る↑ 索引へ↓ トップページに戻る

モジュール名を変更

モジュールが複数になったら、分かりやすい名前に変更  VBAは、「標準モジュール」を追加して、そこに書きます。
 プログラムが複雑になると、モジュールを分割した方が見通しが良くなります。モジュール名は、日本語にすると、分かりやすいでしょう。

 モジュール名を変更は、
プロジェクトエクスプローラで、Moduleを選択して、
メニューの[表示]→[プロパティ]をクリックして、
プロパティウィンドウの[(オブジェクト名)]欄で名前を変更して、
[Enter]キーを押します。

注:
 @モジュール名に、Sub プロシージャ名と同じ名前を付けることはできません。
 A文字数は、半角 32 字(全角16字)までです。

 私は、次の例のように、モジュール名の1文字目をアルファベットにして、処理の順番に並ぶようにしています。(後日の挿入を考慮して、適当にアルファベットを歯抜けにしています。)
a接続
c品目の検索
dメイン
e受注実績検索
f前回データ削除
g地域処理
h適用モデル検索
k需要予測計算

 コードのステップが増え複雑になると、デバッグで、変数の動きを確認する必要が有ります。こんなときには、変数とプロシージャの対応表を出力すると、役に立ちます。

この種類の目次に戻る↑ 索引へ↓ トップページに戻る



ホームページのトップに戻る