Crie rapidamente muitas formas no Visio a partir do arquivo de texto

0

Eu tenho um arquivo de texto com muitos itens, cada um em sua própria linha. Eu quero criar um diagrama do Visio com uma forma de retângulo para cada item e com o texto de cada retângulo definido para o item.

Existe uma maneira rápida de fazer isso?

Tenho itens suficientes que seria demorado fazer à mão. Eu só quero criar as formas iniciais para que eu possa organizar e trabalhar com elas no diagrama.

    
por M. Dudley 28.11.2017 / 21:22

1 resposta

1

Eu montei um VBA que deveria fazer o truque para você.

Algumas suposições

  • É o tamanho da página A4 com o Portrait Layout.
  • 4 Os retângulos são colocados um ao lado do outro.
  • O tamanho da fonte do texto se ajusta à altura do retângulo, em vez de alterar o tamanho da forma.
  • O arquivo de texto contém itens um abaixo do outro

Você pode precisar estudar o código e alterá-lo para atender às suas necessidades. Por exemplo. Você pode querer ter um retângulo maior do que o que eu criei. Ou você pode precisar remover o interior For Next Loop e colocá-los um abaixo do outro e assim por diante.

Abra um diagrama do Visio em branco. Definir unidades métricas. Pressione ALT + F11 para acessar o VBA Editor. Inserir um módulo no menu Inserir. Coloque o seguinte código nele.

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

Existem duas constantes definidas no código. Você precisa definir o caminho e o nome do arquivo que se refere ao seu arquivo de texto.

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

Na página em branco do Visio, pressione ALT + F8 e execute essa macro. Aguarde alguns segundos e retângulos com texto embutido, pois os respectivos itens de linha do seu arquivo de texto devem aparecer na página do Visio. Se preencher uma página, ela inserirá a próxima página e assim por diante.

Teste isso e verifique se isso funciona para você.

    
por 30.11.2017 / 08:25