テキストファイルからVisioで多くの図形をすばやく作成する


0

テキストファイルには多くの項目があり、それぞれが独自の行にあります。各アイテムの四角形の形状と、各四角形のテキストがアイテムに設定されたVisioダイアグラムを作成します。

これを行う簡単な方法はありますか?

手でやるのに時間がかかるほどのアイテムがあります。最初の図形を作成して、ダイアグラム内でそれらを配置および操作できるようにします。


VBAのアプローチがあるかもしれません。テキストファイルにはいくつのアイテムがありますか?それらの単一の単語またはいくつかの単語を含む行ですか?Visio Diagramで長方形を上下に並べたり、隣り合わせに配置するにはどうしますか?
-patkim

質問が更新されました。VBAは機能しますが、その方法を理解できませんでした。
M.ダドリー

私はこの質問が下票に値するとは思わない!
ポールハーバー

回答:


1

私はあなたのためのトリックを行うVBAをまとめました。

いくつかの仮定

  • Portrait Layoutを使用したA4ページサイズです。
  • 4長方形が隣り合って配置されます。
  • テキストのフォントサイズは、図形のサイズを変更するのではなく、四角形の高さに合わせて調整されます。
  • テキストファイルには、上下に項目が含まれています

コードを調べて、要件に合わせて変更する必要がある場合があります。たとえば、私が作成したものよりも大きなサイズの長方形が必要な場合があります。または、内側のFor Nextループを削除して、上下に配置する必要がある場合があります。

空白のVisio図を開きます。メトリック単位を設定します。Alt + F11を押してVBAエディターにアクセスします。[挿入]メニューからモジュールを挿入します。次のコードをそこに入れます。

Public Sub DrawRectangle_Example()
Dim vsoPages As Visio.Pages
Dim vsoPage As Visio.Page
Dim vsoDocument As Visio.Document
Dim Textline As String
Const File1 = "C:\Temp\"  'Set path here
Const File2 = "Visio.txt" 'Set filename with extension here
Dim vsoShape As Visio.Shape
Open File1 & File2 For Input As #1
Do While Not EOF(1)
     For i = 11.3 To 1.1 Step -0.6
          For j = 0.5 To 6.2 Step 1.9
            Set vsoShape = ActivePage.DrawRectangle(j, i, j + 1.5, i - 0.3)
            Line Input #1, Textline
            vsoShape.Text = Textline
            vsoShape.CellsSRC(visSectionCharacter, 0, visCharacterSize).FormulaU = "MIN(1,Height/TEXTHEIGHT(TheText,Width))*13&""pt"""
            If EOF(1) Then
               GoTo myend
            End If
          Next j
     Next i

     If EOF(1) Then
        GoTo myend
     End If

     Set vsoDocument = ActiveDocument
     Set vsoPages = vsoDocument.Pages
     Set vsoPage = vsoPages.Add

Loop

myend:
    Close #1
End Sub

コードには2つの定数が定義されています。テキストファイルを参照するパスとファイル名を設定する必要があります。

Const File1 = "C:\Temp\"  'Set path here
Const File2 = "Visio.txt" 'Set filename with extension here

空白のVisioページで、ALT + F8を押してこのマクロを実行します。数秒待つと、テキストファイルの各行項目としてのインラインテキストを含む四角形がVisioページに表示されます。1ページがいっぱいになると、次のページが挿入されます。

これを試してみて、これがうまくいくかどうかを確認してください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.