VISIO2003にテキストかエクセルから一括でテキストデータ(短文で件数は多量)をポストイットのように長方形の図形イメージとして一件ずつ取り込む方法はありますか?

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:--
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答2件)

id:cx20 No.1

回答回数607ベストアンサー獲得回数108

ポイント25pt

試しにコードを書いてみました。

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

参考情報です。

Visio VBA のサンプルコードです。

id:cx20 No.2

回答回数607ベストアンサー獲得回数108

ポイント25pt

URL はダミーです。

Excel 対応版(ADOを使用)を作成してみました。

実行手順は以下の通りです。

1. [ファイル] - [新規作成] - [新しい図面] を選択

2. [ツール] - [マクロ] - [Visual Basic エディタ] を選択

3. [挿入] - [標準モジュール] を選択

4. 以下のコードを貼り付けます。

<注意事項>

はてなに投稿するときに「”」記号が全角になっている可能性があります。

その場合は、お手数ですが、半角に直してください。

もしくは、

からコピーしてください。

<設定内容>

・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() を実行するとデータ件数分、図形が作成されます。

不明な点がございましたら、

の「コメントの挿入」にてご連絡願います。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません