#contents

*Visio 関連情報
**サンプルコード
***図形(四角形)を生成するサンプル(その1)
*Visio 関連情報 [#b577c911]
**サンプルコード [#xdcb7a07]
***図形(四角形)を生成するサンプル(その1) [#qa949522]
-文字列の配列の情報を使って四角形を作成するサンプルです。
 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)
***図形(四角形)を生成するサンプル(その2) [#dcc6c242]
-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


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS