2017-09-14 4 views
0

Ich habe ein Visio-Dokument mit mehr als 40 Seiten/Tabs. Jede Seite hat mehrere Ebenen und ich versuche, eine Liste aller Ebenen im Dokument zu erstellen, damit ich bestätigen kann, dass die Namenskonventionen eingehalten wurden, ohne jede Seite einzeln durchgehen zu müssen.Liste aller Ebenen in mehrseitigen Visio-Dokument

Weiß jemand, ob es möglich ist, eine solche Liste z.

  • Page 1
  • foo_layer
  • bar_layer
  • Page 2
  • foo_layer
  • x_layer usw.

Antwort

0

Sicher, es ist p Möglich. Sie können beispielsweise einen VBA-Makro verwenden, um die Aufgabe auszuführen, oder ein externes Skript. Visio verfügt über eine umfangreiche API. Sie können die offizielle Dokumentation darüber lesen.

0

Danke Nikolay. Ich hatte gehofft, etwas aus der Box zu finden, aber VBA kam zur Rettung. Sollte diese für andere nützlich ist hier mein Code:

Sub List_page_Layers() 

Dim Pageobj As Visio.Page 
Dim PageLayer As Visio.Layer 
Dim myFile As String 
Dim layerVal As String 
Dim searchString as String 
searchString = "SOME TEXT" 'This allows me to filter as there were a couple of pages I wasn't interested and all other pages had a common string in their name 
myFile = "C:\\Temp\\Layers.txt" 

Open myFile For Output As #1 

For Each Pageobj In ActiveDocument.Pages 
    If InStr(Pageobj.Name, searchString) Then 
     For Each PageLayer In Pageobj.Layers 
      layerVal = Pageobj.Name & " - " & PageLayer.Name 

      Write #1, layerVal 
     Next 
    End If 

Next 
Close #1 
End Sub 

Dieser gibt eine Textdatei mit Layer-Namen, die ich dann nach Bedarf verwenden können