#contents *Visio 関連情報 **サンプルコード ***図形(四角形)を生成するサンプル(その1) -文字列の配列の情報を使って四角形を作成するサンプルです。 Sub AddShape() Dim shpObj Dim n ' テストデータ n = 5 Dim strArray() ReDim strArray(n - 1) strArray(0) = "Message1" strArray(1) = "Message2" strArray(2) = "Message3" strArray(3) = "Message4" strArray(4) = "Message5" Dim i For i = 0 To n - 1 ' DrawRectangle により四角形を描画します ' パラメータは x1, y1, x2, y2 (単位:インチ) Set shpObj = ActivePage.DrawRectangle(0, i, 1, i + 1) ' シェイプオブジェクトに文字列を設定 shpObj.Text = strArray(i) Next End Sub ***図形(四角形)を生成するサンプル(その2) -Visio VBA で Excel のデータを使って図形(四角形)を生成するサンプルです。 -実行手順 --1. [ファイル] - [新規作成] - [新しい図面] を選択 --2. [ツール] - [マクロ] - [Visual Basic エディタ] を選択 --3. [挿入] - [標準モジュール] を選択 --4. 後述のコードを貼り付けます、 --5. AddShapeFromExcel() を実行するとデータ件数分、図形が作成されます。 -設定内容 --strFileName には、テストデータ(*.xls)のパスを記述してください。 --strSheetName には、対象となるシート名を記述してください。 --シートの1行目は項目行として取り扱いますので、先頭行(A1)は "Field1" と入力してください。 -サンプルコード Sub AddShapeFromExcel() Dim strFileName Dim strSheetName strFileName = "D:\home\edu\hatena\visio_vba\test.xls" ' テストデータ strSheetName = "SampleSheet" ' シート名 ' ADO を利用して Excel ファイルをオープンする Dim cn Set cn = CreateObject("ADODB.Connection") cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strFileName & ";Extended Properties=Excel 8.0" ' ADO を利用して Excel のシートのデータをレコードセットにセットする Dim rs Set rs = cn.Execute("SELECT * FROM [Excel 8.0;database=" & strFileName & "].[" & strSheetName & "$]") Dim shpObj ' レコード件数分ループする While Not rs.BOF And Not rs.EOF ' 四角形を作成する Set shpObj = ActivePage.DrawRectangle(0, 0, 1, 1) ' 四角形にテキストデータを挿入する shpObj.Text = rs(0) '次のレコードに移動する rs.MoveNext Wend End Sub -テストデータ(test.xls) #ref(ExcelTestData_20040713.jpg); -実行結果(このサンプルでは同じ場所に図形が作成されます) #ref(VisioAddShape01_20040713.jpg); -実行結果(移動するとこのように図形が貼り付けられていることがわかります) #ref(VisioAddShape02_20040713.jpg); -はてな --http://www.hatena.ne.jp/1089682909 #comment