2017-09-14 13 views
0

私は40ページ以上のタブを持つVisioドキュメントを持っています。各ページにはいくつかのレイヤーがあり、ドキュメント全体のすべてのレイヤーのリストを生成しようとしているので、各ページを個別に処理することなく命名規則を遵守していることが確認できます。マルチページVisioドキュメント内の全レイヤのリスト

このようなリストを出力できるかどうかは誰にも分かりません。 ページ1

  • foo_layer
  • bar_layer
  • ページ2
  • foo_layer
  • x_layer

    • 、それはP
  • 答えて

    0

    確かである等オッシブル。たとえば、VBAマクロを使用してタスクを実行することも、外部スクリプトを使用することもできます。 Visioには豊富なAPIがあります。それについての公式文書をチェックすることができます。

    0

    ありがとうNikolay。 私は箱から何かを見つけることを望んでいたが、VBAは救助に来た。

    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 
    

    これは私がその後、必要に応じ

    として使用することができます層名を持つテキストファイルを出力します場合には、これは、ここに私のコードです他の人に便利です
    関連する問題