http://www.hondarer-soft.com/cx/pukiwiki/pukiwiki.php?Memo%2F200...
[hondarer-soft] to [cx20.main.jp]
試しにコードを書いてみました。
Excel からの取り込む方法ではありませんが、
文字列の配列を使って図形を作成するサンプルです。
ADO とか組み合わせれば、データベース(Excelなど)から
データを取得することも可能だと思います。
(必要でしたら、サンプルコードを書きますけど・・・)
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
http://www.microsoft.com/japan/developer/library/visio/DVS_16_Wo...
MSDN Online Japan : File Not Found
参考情報です。
Visio VBA のサンプルコードです。
URL はダミーです。
Excel 対応版(ADOを使用)を作成してみました。
実行手順は以下の通りです。
1. [ファイル] - [新規作成] - [新しい図面] を選択
2. [ツール] - [マクロ] - [Visual Basic エディタ] を選択
3. [挿入] - [標準モジュール] を選択
4. 以下のコードを貼り付けます。
<注意事項>
はてなに投稿するときに「”」記号が全角になっている可能性があります。
その場合は、お手数ですが、半角に直してください。
もしくは、
http://www.hondarer-soft.com/cx/pukiwiki/pukiwiki.php?Memo%2F200...
[hondarer-soft] to [cx20.main.jp]
からコピーしてください。
<設定内容>
・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) ’ 1列目のデータを利用します。
’次のレコードに移動する
rs.MoveNext
Wend
End Sub
5. プロシージャー AddShapeFromExcel() を実行するとデータ件数分、図形が作成されます。
不明な点がございましたら、
http://www.hondarer-soft.com/cx/pukiwiki/pukiwiki.php?Memo%2F200...
[hondarer-soft] to [cx20.main.jp]
の「コメントの挿入」にてご連絡願います。
コメント(0件)