前のトピック     次のトピック

第 15 章 VISIO での MICROSOFT VBA プログラミング

セクション 2   VBA プロジェクトの作成

Microsoft Visual Basic for Applications (VBA) プロジェクトは、モジュール、クラス モジュール、およびユーザー フォームで構成されています。

単純なプロジェクトには、ユーザー フォームまたはモジュールが 1 つだけあります。より複雑なプロジェクトには、複数のモジュール、クラス モジュール、およびユーザー フォームが含まれます。たとえば、図面を生成するソリューションの場合は、ユーザーに図形の情報を入力させるためのユーザー フォームなどを含めることができます。さらに、このソリューションの 1 つ以上のモジュールまたはクラス モジュール (またはその両方) に、以下の処理を行うコードを挿入することができます。

ファイルを開くなどのイベントに応じて処理を行うソリューションを作成する場合は、そのイベントの発生時に実行されるコードをソリューションに含めます。

ファイルをインポートして、既存のモジュール、クラス モジュール、またはユーザー フォームをプロジェクトに追加することもできます。また、プロジェクト項目をエクスポートし、別のプロジェクトで使用することもできます。さらに、ActiveX のコントロールを Visio ファイルに挿入することもできます。ActiveX コントロールの詳細については、「第 23 章 Visio ソリューションでの ActiveX コントロールの使用」を参照してください。

このセクションの内容...

モジュールとクラス モジュールの挿入

ユーザー フォームの挿入

ファイルのインポートとエクスポート

モジュールとクラス モジュールの挿入

VBA プログラムの多くには、モジュールが 1 つ以上含まれています。モジュールは、宣言とそれに続くプロシージャの集まりです。Visio の VBA プロジェクトにはすべて、ThisDocument というクラス モジュールが含まれています。これはプロジェクトのファイルを表すオブジェクトです。クラス モジュールを追加して、独自の VBA オブジェクトをプロジェクトに定義することもできます。

モジュールまたはクラス モジュールを挿入するには

 



[プロシージャの追加] ダイアログ ボックス

モジュールまたはクラス モジュールにプロシージャを追加するには

  1. [挿入] メニューの [プロシージャ] から [プロシージャの追加] ダイアログ ボックスを選択します。
  2. [名前] ボックスに、プロシージャ名を入力します。
  3. プロシージャ名は、Visio の [マクロ] サブメニューの、モジュールのサブメニューに表示されます。プロシージャ名にはスペースや MsgBoxIf、または Loop など、VBA がプログラミング言語として使用する予約語は使用できません。

  4. [種類] で、プロシージャの種類を選びます。選択できる種類は、[Sub プロシージャ]、[Function プロシージャ]、または [Property プロシージャ] のいずれかです。
  5. モジュールおよびクラス モジュールには、複数の種類のプロシージャを含めることができます。

  6. [適用範囲] で [Public プロシージャ] または [Private プロシージャ] を選択します。
  7. 適用範囲とは、他のモジュールおよびプログラムからそのプロシージャにアクセスできる範囲のことです。

  8. すべてのローカル変数を静的変数として宣言するには、[すべてのローカル変数を Static にする] チェック ボックスをオンにします。
  9. プロシージャの変数をローカルまたは静的 (グローバル) 変数として宣言できます。

  10. [OK] をクリックします。
  11. VBA により項目のコード ウィンドウに、"プロシージャ テンプレート" が挿入されます。このテンプレートにコードを入力します。テンプレートには、挿入するプロシージャの種類に合わせ、コードの最初と最後の行が入っています。

プロシージャの詳細については、Microsoft Visual Basic のオンライン ヘルプを参照してください。

TOP へ

ユーザー フォームの挿入

プログラムでユーザーに情報を入力させる場合は、ユーザー フォームを挿入してユーザー インターフェースを作成します。ユーザー フォームには、コマンド ボタンやテキスト ボックスなどのユーザー インターフェース コントロールが含まれます。プロジェクトにユーザー フォームを追加すると、VBA によって自動的に [コントロール] ツール ボックスが開かれます。コントロールとは、ユーザー フォーム上に配置するオブジェクトで、各コントロールにはプロパティ、メソッド、イベントがあります。コントロールが発生するイベントに応じて、なんらかの処理を実行できます。コントロールを使用すると、ユーザー入力を受け取り、出力を表示し、イベント プロシージャを実行できます。

 



コントロールを含むツール ボックスおよびユーザー フォーム

  1. ツール ボックスの [コントロール] タブ
  2. ユーザー フォーム
  3. テキスト ボックス コントロール
  4. コマンド ボタン コントロール

ユーザー フォームをプロジェクトに追加するには

  1. [挿入] メニューの [ユーザー フォーム] を選択します。
  2. ユーザー フォームに追加するコントロールを [コントロール] ツール ボックスから選択し、ユーザー フォーム上へドラッグします。
  3. コマンド ボタンやテキスト ボックスなどのコントロールの追加に関する詳細については、Visual Basic のオンライン ヘルプを参照してください。

  4. ユーザー フォームまたはコントロールをダブルクリックして、コード ウィンドウを表示します。
  5. コード ウィンドウの [プロシージャ] ボックスで、起動するイベントを選択します。次に、コードを入力します。または、プロシージャを挿入して、プロシージャ テンプレートにコードを入力します。


ヒント このガイドでは、VBA のデフォルトのユーザー フォームおよびコントロール名を使用していますが、実際のプログラミングでは、オブジェクトの種類や目的がわかるような名前に変更することをお勧めします。プログラミングでよく利用される命名規則を以下に示します。

この例では、変更後のユーザー フォーム名は "frm" という文字列で始まっています。プログラミングでは、オブジェクトの種類がひとめで分かるように、コントロール名に frm、txt (テキストボックス)、lbl (ラベル)、cmd (コマンドボタン) 等の文字列がよく使用されます。


TOPへ

ファイルのインポートとエクスポート

プロジェクトに項目をインポートするには、[ファイル] メニューから [ファイルのインポート] を選択します。VBA モジュール (.bas)、ユーザー フォーム (.frm)、またはクラス モジュール (.cls) のファイルであれば、どれでも選択してそのコピーをプロジェクトに追加できます。項目をプロジェクトからエクスポートして、他のプロジェクトにインポートすることもできます。項目をエクスポートするには、プロジェクト エクスプローラでエクスポートする項目を選択します。次に、[ファイル] メニューの [ファイルのエクスポート] を選択し、ファイルの保存場所を入力します。項目をエクスポートしても、プロジェクトから削除されることはありません。

プロジェクトまたはプロジェクト項目を Visio のファイル間でドラッグ&ドロップすることもできます。プロジェクト エクスプローラでプロジェクトまたはプロジェクト項目を選択し、そのアイコンを他の Visio のプロジェクト アイコン上へドラッグします。プロジェクト項目をドロップした場合は、自動的に適切なプロジェクト フォルダに格納されます。プロジェクトをドロップした場合は、[参照設定] フォルダからそのプロジェクトを参照できます。これは、1 つの Visio ファイルが持てるプロジェクトは 1 つだけだからです。代わりに、[参照設定] フォルダから、他の複数のプロジェクトを参照することができます。


ThisDocument クラス モジュールを Visio ファイル間でドラッグ&ドロップすることはできませんが、コード ウィンドウ間で ThisDocument のコードを他のプロジェクト項目のコードへドラッグ&ドロップまたはコピー&ペーストすることができます。


Top