2017-09-14 10 views
0

J'ai un document Visio avec plus de 40 pages/onglets. Chaque page a un certain nombre de couches et j'essaie de générer une liste de toutes les couches dans le document afin que je puisse confirmer que les conventions de nommage ont été respectées sans avoir à parcourir chaque page individuellement.Liste de toutes les couches dans le document visio multipage

Est-ce que quelqu'un sait si cela est possible de sortir une telle liste par ex.

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

Répondre

0

Bien sûr, il est p ossible. Vous pouvez utiliser une macro VBA pour accomplir la tâche par exemple, ou un script externe. Visio a une API riche; vous pouvez consulter la documentation officielle à ce sujet.

0

Merci Nikolay. J'espérais trouver quelque chose hors de la boîte mais VBA est venu à la rescousse. Au cas où cela est utile pour les autres voici mon 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 

Ceci produit un fichier texte avec les noms de calque que je peux alors utiliser au besoin