第 15 章 VISIO での MICROSOFT VBA プログラミング
Visio® タイプ ライブラリには、Visio が公開するオブジェクト、プロパティ、メソッド、およびイベントのオートメーションでの定義が含まれています。Visio ファイルに含まれる Microsoft Basic for Applications (VBA) プロジェクトは、自動的に Visio タイプ ライブラリを参照します。この Visio タイプ ライブラリをプログラム内の Visio のオブジェクト型の定義に使用することができます。Visio タイプ ライブラリで宣言された Visio のオブジェクト型を使用すると、プログラムの処理速度が向上します。VBA では、Visio のオブジェクト型の解釈が、プログラム実行時ではなくコンパイル時 (設計時) に行われるからです。VBA では、プログラムのコンパイル時に構文とプログラミング エラーが検査され、タイプ ライブラリを参照してオブジェクト型が決定されます。Object 型のような汎用的な変数の解釈は実行時に行われ、このとき VBA は Visio にオブジェクト参照を問い合わせます。このような余分な問い合わせ処理により、プログラムの速度が低下します。
また、タイプ ライブラリには、プロパティおよびメソッドの引数と戻り値に使用できるグローバル記号定数も定義されています。プロパティやメソッドに渡される引数の大部分は数値なので、これらの定数を使用するとコードの読み書きが容易になります。たとえば、Window オブジェクトがどのようなウィンドウを表しているのか調べる場合を考えてみましょう。Window オブジェクトの Type プロパティは、ウィンドウの種類を示す整数を返します。Visio タイプ ライブラリへの参照を設定するか、プロジェクト内に Visconst.bas を含めていれば、整数の代わりに定数でウィンドウの種類を調ることができます。たとえば、1 の代わりに visDrawing を使用できます。
特定のメソッドまたはプロパティで使用される定数の一覧については、Visio 製品付属のオンライン ヘルプ「開発者用リファレンス」([ヘルプ] メニューから [開発者用リファレンス] を選択) を参照してください。
VBA のオブジェクト ブラウザで、Visio タイプ ライブラリの内容を確認できます。
注 このガイドの例では、Visio タイプ ライブラリへの参照を設定していることを前提としています。設定を確認するには、[ツール] メニューから [参照設定] を選択し、[Visio 2000 Type Library] が選択されていることを確認してください。
このセクションの内容...
オブジェクト ブラウザで Visio タイプ ライブラリを確認できます。オブジェクト ブラウザは、開いているプロジェクトが参照するタイプ ライブラリの定数、クラス (オブジェクト)、およびクラス メンバ (プロパティ、メソッド、およびイベント) を表示します。
オブジェクト ブラウザのメンバの一覧には、Visio のプロパティ、メソッド、イベント、および定数が表示されます。ブラウザ下部の [説明] ペインには、メンバの構文がコード テンプレートとして表示されます。これをモジュール内にコピー&ペーストまたはドラッグ&ドロップし、独自の変数および引数で置き換えることができます。コード テンプレートを使用すると入力ミスを減らすことができます。
オブジェクト ブラウザ
オブジェクト ブラウザを使用するには
オートメーションをサポートするアプリケーションは、オートメーションに公開するオブジェクトが定義されたタイプ ライブラリを提供します。Visio ソリューションから別のアプリケーションのオブジェクトにアクセスするには、[ツール] メニューの [参照設定] をポイントし [参照可能なライブラリ ファイル] ボックスからタイプ ライブラリを選びます。 これと同じ手順で、オートメーションをサポートする任意のアプリケーションから Visio への参照を設定することもできます。たとえば、Microsoft Word から Visio アプリケーションへの参照を設定し、Visio オブジェクトを Word で使用することができます。
[参照可能なライブラリ ファイル] ボックスで選択したタイプ ライブラリはすべて、ユーザーのプロジェクトの [プロジェクト/ライブラリ] ボックスに表示されます。さらに [参照設定] ダイアログ ボックスからは、開いている Visio ファイルへの参照を設定したり、閉じている Visio ファイルを参照したりできます。
[参照可能なライブラリ ファイル] の一覧
注 Visio タイプ ライブラリのクラスおよびメンバだけを表示する場合は、[プロジェクト/ライブラリ] ボックスから [Visio] を選択します。
Visio タイプ ライブラリを有効に活用すると、コードを効率よく記述できます。Visio タイプ ライブラリで宣言された Visio オブジェクト型を使用し、変数を Visio.Page などの特定の種類として宣言できます。
Dim pagObj as Visio.Page
Visio.Page などの Visio オブジェクト型を使用すると、プログラムで参照されている Visio タイプ ライブラリのオブジェクト型がコンパイル時に検査されます。このコンパイル時の型の結び付けは、"アーリー バインディング" と呼ばれます。この例では、Visio で Visio タイプライブラリの Visio のオブジェクト型を参照していること、Page で pagObj 変数が Page オブジェクトであることをプログラムで宣言しています。Visio オブジェクト使用の詳細については、「第 14 章 オートメーションと Visio オブジェクト モデル」を参照してください。
以下は、よく使われるオブジェクト型の例です。
Dim docsObj As Visio.Documents |
'A Documents collection |
オブジェクト型またはライブラリ タイプの後にピリオドを入力すると、そのオブジェクト型または変数型に対して使用できるオブジェクト型、プロパティ、およびメソッドの一覧が自動的に表示されます。一覧表示されたオブジェクト型をダブルクリックすると、そのオブジェクト型がコードに挿入されます。
ヒント コード ウィンドウで作業中にメンバの自動表示ウィンドウが表示されない場合は、[ツール] メニューから [オプション] を選択します。次に、[編集] タブを選択し、[自動メンバ表示] チェック ボックスをオンにします。
この例では、Page が適切なオブジェクト型になります。
Visio タイプ ライブラリのメンバの自動表示ウィンドウ