Visual Basic .NET を使用して Visio を自動化する方法
概要
この記事では、Visual Basic .NET を使用して Visio を自動化する方法について説明します。
詳細情報
この記事のサンプル オートメーション コードでは、次の操作を行います。
- 配列に含まれるデータに基づく簡単なフローチャートを Visio 図面ページに描画します。
- ページに名前を付けます。
- ドキュメントを保存します。
配列は 2 次元です。最初の要素には図形の名前が含まれており、2 番目の要素には図形のテキストが含まれます。
サンプル Visual Basic .NET アプリケーションを作成する手順
Microsoft Visual Studio .NET を起動します。 [ファイル] メニューの [新規作成] をクリックし、[プロジェクト] をクリックします。 [プロジェクトの種類] で [Visual Basic プロジェクト] をクリックし、[テンプレート] で [Windows アプリケーション] をクリックします。 Form1 は既定で作成されます。
Visio オブジェクト ライブラリへの参照を追加します。 これを行うには、次の手順を実行します。
- [ プロジェクト] メニューの [ 参照の追加] をクリックします。
- [COM] タブで、次のいずれかのオプションをクリックし、[選択] をクリックします。
- Visio 2007 の場合は、[ Microsoft Visio 12.0 タイプ ライブラリ] をクリックします。
- Visio 2003 の場合は、[ Microsoft Visio 11.0 タイプ ライブラリ] をクリックします。
- Visio 2002 の場合は、[ Microsoft Visio 2002 タイプ ライブラリ] をクリックします。
メモ まだインストールしていない場合は、Microsoft Office XP プライマリ相互運用機能アセンブリ (PIA) をダウンロードしてインストールすることをお勧めします。
[参照の追加] ダイアログ ボックスで [OK] をクリックして、選択内容を受け入れます。 選択したライブラリのラッパーを生成するように求めるメッセージが表示されたら、[はい] をクリックします。
[表示] メニューの [ツール ボックス] をクリックします。 Form1 にボタンを追加します。
Button1 をダブルクリックします。 Button1 の Click イベントでコード ウィンドウが開きます。
コード ウィンドウで、次のコードを置き換えます
Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click End Sub
置換後:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click fBuildArray() fBuildFlowchart() End Sub
[プロジェクト] メニューの [モジュールの追加] をクリックします。
Module1 の内容を次のように置き換えます。
Module Module1 Public aryValues(5, 2) As String Sub fBuildArray() aryValues(0, 0) = "Terminator" aryValues(1, 0) = "Document" aryValues(2, 0) = "Decision" aryValues(3, 0) = "Process" aryValues(4, 0) = "Terminator" aryValues(0, 1) = "Begin Routing Process" aryValues(1, 1) = "Gather Customer Data" aryValues(2, 1) = "Supported Issue?" aryValues(3, 1) = "Dispatch to Queue" aryValues(4, 1) = "End Routing Process" End Sub Sub fBuildFlowchart() Dim vApp As Visio.Application Dim vDoc As Visio.Document Dim vFromShape As Visio.Shape Dim vToShape As Visio.Shape Dim vConnector As Visio.Shape Dim vFlowChartMaster As Visio.Master Dim vConnectorMaster As Visio.Master Dim vStencil As Visio.Document Dim dblXLocation As Double Dim dblYLocation As Double Dim vBeginCell As Visio.Cell Dim vEndCell As Visio.Cell Dim iCount As Integer Const TEMPLATEPATH = "C:\Program Files\Microsoft Office\Visio10\1033\" _ & "Solutions\Flowchart\Basic Flowchart Shapes (US units).vss" ' Change this constant to match your choice of location and file name. Const SAVENEWFILE = "C:\Simpleflowchart.vsd" ' Start point measured from the bottom left corner. dblXLocation = 4.25 dblYLocation = 8.5 vApp = New Visio.Application() 'Create a new document; note the empty string. vDoc = vApp.Documents.Add("") vStencil = vApp.Documents.OpenEx(TEMPLATEPATH, 4) For iCount = LBound(aryValues) To UBound(aryValues) - 1 vFlowChartMaster = vStencil.Masters(aryValues(iCount, 0)) vToShape = vApp.ActivePage.Drop(vFlowChartMaster, _ dblXLocation, dblYLocation) vToShape.Text = aryValues(iCount, 1) If Not vFromShape Is Nothing Then If vConnectorMaster Is Nothing Then vConnectorMaster = vStencil.Masters("Dynamic Connector") End If vConnector = vApp.ActivePage.Drop(vConnectorMaster, 0, 0) vBeginCell = vConnector.Cells("BeginX") vBeginCell.GlueTo(vFromShape.Cells("AlignBottom")) vEndCell = vConnector.Cells("EndX") vEndCell.GlueTo(vToShape.Cells("AlignTop")) vConnector.SendToBack() End If vFromShape = vToShape vToShape = Nothing dblYLocation = dblYLocation - 1.5 Next vDoc.Pages(1).Name = "Flowchart Example" Try ' Delete the previous version of the file. Kill(SAVENEWFILE) Catch End Try vDoc.SaveAs(SAVENEWFILE) vDoc.Close() vApp.Quit() vDoc = Nothing vApp = Nothing GC.Collect() End Sub End Module
メモ Visio のインストール フォルダーを指すように TEMPLATEPATH 定数を変更します。 既定では、場所は次のいずれかです。
Office Visio 2007 の場合、既定の場所は C:\Program Files\Microsoft Office\Visio12\1033\BASFLO_U.VSS です。
Visio 2003 の場合、このファイルの既定の場所は C:\Program Files\Microsoft Office\Visio11\1033\BASFLO_U.VSS です。
Visio 2002 の場合、このファイルの既定の場所は C:\Program Files\Microsoft Visio\Visio10\1033\Solutions\Flowchart\Basic フローチャート図形 (米国単位)vss です。
[デバッグ] メニューの [スタート] をクリックします。
Visio で C:\Simpleflowchart.vsd を開き、結果を表示します。
関連情報
詳細については、次の Microsoft Developer Network (MSDN) Web サイトを参照してください。