人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

●質問者: indp01
●カテゴリ:コンピュータ
✍キーワード:イメージ エクセル テキスト データ ポストイット
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● cx20
●25ポイント

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

参考情報です。

http://wan6-6.hp.infoseek.co.jp/koramu/vbatips.html

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


2 ● cx20
●25ポイント

http://www.mster.co.jp/visiosquare/cgi-bin/visbbs/

VISIO SQUARE

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.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ