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

第 1 章 VISIO ソリューション開発の概要

セクション 5   Visio ソリューションの計画

ソリューションを最も簡単に開発する方法は、独自に作成したシェイプ、ステンシル、テンプレートと、Visio® 製品に付属の機能を使用して標準化された図面を作成することです。アドオンとも呼ばれる描画アシスタントを持つソリューションには、ユーザーの図面作成に役立つプログラムが含まれています。図面が詳細なルールに従って作成される場合、ユーザーが修正できるような他のソースからのデータを使用して図面を生成するアプリケーションをソリューションに含めなければいけないことがあります。図面以外のデータも提供するソリューションの場合、外部のデータベースや、市販の、または独自に開発された外部アプリケーションを統合する必要もあります。

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

開発プロセスの計画

シェイプとステンシルの設計

テンプレートの設計

シェイプとテンプレートのオートメーション化

Visio ソリューションとデータベースの統合

オートメーションを実装する方法

開発プロセスの計画

独自のシェイプ、テンプレート、小規模のコードで構成される単純な Visio ソリューションであれば、1 人の開発者で作成できる場合もあります。しかし、より複雑なソリューションは、それぞれが専門の技術を持つ開発者のチームで作成する必要があります。たとえば、チームを以下のメンバーで構成したとします。

チームが結成できたら、開発プロセスに関する以下の提案を検討します。

TOPへ

シェイプとステンシルの設計

ソリューションを開発するには、まず必要なシェイプを作成し、できるだけ多くの機能を数式に入力します。シェイプの開発から始めるのには、2 つの大きな理由があります。

目的のシェイプの動作が予想可能で、その動作が数式によって制御できる場合 (たとえば、サイズ変更や拡大縮小を自動的に行うなど) は、シェイプにその数式を設定します。実行時に動作が動的に変化する場合 (たとえば図面上のシェイプのテキストや配置が変わるなど) は、プログラムを使って処理します。シェイプの数式を設定すると、シェイプの外観と動作を正確に制御できます。ソリューションにマスタシェイプのステンシルを組み込んでおけば、ユーザーは Visio の描画ツールを使用して描画する必要がありません。

プログラムのマスタシェイプを作成したら、プログラムで作成する予定の図面を描画ツールを使って作成し、Visio のインスタンスでテストします。これは、どのようなコードとデータが必要かを知る手がかりとなります。また、シェイプが予想通りに動作するかどうかも確認できます。

最後に、マスタシェイプを格納するステンシルがソリューションのユーザー インターフェースで重要な役割を果たすことを忘れないで下さい。

マスタシェイプとステンシルの作成の詳細については、「第 3 章 Visio マスタシェイプ、ステンシル、テンプレート、および図面」を参照してください。Visio ソリューションでのステンシルの配布の詳細については、「第 13 章 ステンシルとテンプレートのパッケージング」を参照してください。

TOPへ

テンプレートの設計

テンプレートは、あらゆる図面に共通の設定をユーザーに提供します。テンプレートを使用すると、ユーザーは一連のシェイプから選択を行うだけで標準的な図面が簡単に作成できるため、図面の標準化が簡単になります。

テンプレートにはスタイルを設定したり、一定のグリッドと寸法を設定しておくことができます。テンプレートにはあらかじめシェイプを含めておくことができます。また、1 つ以上のステンシルを開くことができるので、ユーザーはそれらのステンシルからシェイプを追加することも可能です。テンプレートは、コマンド ボタンやテキスト ボックスなどの ActiveX コントロール、独自に開発した特別な動作を行うコントロール、コントロールを介して図面を操作させるための VBA コードなど、独自のユーザー インターフェースを備えることができます。これらのテンプレートに組み込まれた設定はすべて、図面ページに適用されます。Visio ソリューションでテンプレートを使用すると、以下のような利点があります。


テンプレートに VBA コードを組み込むと、ソリューションとともに配布する必要のあるファイルが少なくて済みますが、テンプレートから作成されたすべての図面にコードのコピーが割り当てられるため、バグの修正やコードの拡張が難しくなります。より柔軟に対応できるようにするには、ソリューションに付属のステンシルやその他の図面に VBA コードを含めておきます。こうすれば配布したソリューションの更新がより簡単です。テンプレートの作成の詳細については、「第 3 章 Visio マスタシェイプ、ステンシル、テンプレート、および図面」を参照してください。Visio ソリューションでテンプレートを配布する方法の詳細については、「第 13 章 ステンシルとテンプレートのパッケージング」を参照してください。


TOP へ

シェイプとテンプレートのオートメーション化

ソリューションのマスタシェイプとテンプレート (必要な場合) を開発した後、ソリューションの残りの部分はオートメーションを使用して実装できます。オートメーションで具体的に何を行うかは、ソリューションの目的とソリューションが実行される環境によって異なります。ただし、以下の場合は通常オートメーションを使用します。

プログラムでシェイプを移動したりサイズを変更する場合、移動やサイズ変更を適切に行う数式をシェイプに持たせることができます。シェイプを直接移動したりサイズを変更する場合は、Visio の図面ウィンドウでマウスを使用します。シェイプを操作する複雑なコードをたくさん作成している場合は、前の手順に戻って、シェイプの数式で処理できないかどうかを検討してください。

オートメーションを使用する Visio ソリューションの配布の詳細については、「第 25 章 Visio オートメーション ソリューションのパッケージ」を参照してください。

TOP へ

Visio ソリューションとデータベースの統合

Visio ソリューションにデータベースを統合するには、図面とデータベースをどのように同期させるかを計画する必要があります。どのデータベースを使用し、何をいつどのように変更するのかを決めることは重要です。

たとえば、前述のセキュリティ システムのソリューションの場合、各コンポーネント (カメラ、センサー、制御ユニットなど) にはメーカーのカタログに記載された部品番号がつけられています。部品番号を各マスタシェイプのカスタム プロパティとして保存することにより、部品カタログ データベースに保存されている部品の情報を簡単に調べることができます。

ソリューションとデータベース間の連携動作を設計した後は、ソリューションでは以下の方法により変更処理を行うことができます。

Visio 製品のデータベース ウィザードでユーザー定義セルを追加し、カスタム プロパティ セルにデータベース フィールドをリンクさせることで、単純なソリューションを作成したり、より複雑なソリューションのプロトタイプとして利用することができます。Microsoft 社から提供されている DAO (data access objects) ライブラリを使用すると、ODBC (Open Database Connectivity) を介してデータベースにアクセスしたり、Jet エンジンを使用してデータベースにアクセスすることができます。また、データベースを実際に更新し同期させるオートメーション サーバを Visio ソリューションから呼び出すこともできます。これにより、データベースとの整合性をさらに高めることができます。

Visio ソリューションとデータベースの詳細については、「第 20 章 Visio ソリューションとデータの統合」を参照してください。

TOPへ

オートメーションを実装する方法

どのようなプログラムを作成するかは、プログラムの目的によって異なります。Visio のファイルまたはその他のオートメーション コントローラに VBA マクロを記述したり、Visual Basic または C/C++ でスタンドアロン プログラムを作成できます。また、Visio ライブラリ (VSL) と呼ばれる、Visio で実行する特殊なダイナミックリンク ライブラリ (DLL) を作成することもできます。ユーザーによっては、Windows のデスクトップや Windows のエクスプローラからプログラムを実行できれば十分という場合があります。しかし、Visio のメニューに追加されたコマンドやツールバーに追加されたボタンからプログラムを実行したいというユーザーもいれば、図面のシェイプをダブルクリックまたは右クリックして実行したいというユーザーもいます。また、図面を開いたり作成した場合など、特定のイベントが発生した時に自動的に実行されるようなプログラムを提供することもできます。

Visio ソリューションでオートメーションを実装する基本的な手段として、以下の 4 つがあります。以下の方法で実行できます。

VBA プログラムによって Visio を制御する方法については、第 14 章から第 25 章までを参照してください。Visio で Visual Basic を使用する方法については、「第 26 章 Microsoft Visual Basic による Visio アプリケーションのプログラミング」を参照してください。C++ プログラムで Visio を制御する方法と、VSL を作成する方法の詳細については、「第 27 章 C++ による Visio アプリケーションのプログラミング」を参照してください。

Top