2017-07-28 26 views
0

我需要创建许多使用如下模板的流程图。 enter image description here如何通过.Net编程查找和替换Visio文件中的文本

每个流程图都会更改“TABLE_NAME”标签。

最后,每个流程图被导出为图像(.PNG)

Private Sub CreateFlowChartVisio(ByVal TemplateFilename As String, ByVal saveAs As Object) 
    Dim vApp As Visio.Application 
    Dim vDoc As Visio.Document  
    vApp = New Visio.Application()   
    vDoc = vApp.Documents.OpenEx(TemplateFilename, 4) 

    ''///Code for replace TABLE_NAME likes below code''// 
    vDoc.Content.Find.Execute(FindText:="*TABLE_NAME*", ReplaceWith:=screenTitle & " Master", Replace:=Word.WdReplace.wdReplaceAll) 

    For Each p As Visio.Page In vDoc.Pages 
     Dim n As String = saveAs 
     p.Export(n) 
    Next 
    vDoc.Close() 
End Sub 

我试图使用替换功能应用

vDoc.Content.Find.Execute(FindText:="*TABLE_NAME*", ReplaceWith:=screenTitle & " Master", Replace:=Word.WdReplace.wdReplaceAll) 

但这ISN”不工作。

回答

1

我试着在Word应用程序

vDoc.Content.Find.Execute(FindText:="*TABLE_NAME*", ReplaceWith:=screenTitle & " Master", Replace:=Word.WdReplace.wdReplaceAll) 

使用替换功能等,但是这是行不通的。

毫无疑问,因为每个形状都有自己的文本属性。你必须迭代页面上的所有形状。并迭代文档中的所有页面
和ms单词的方法不工作在ms visio中。用于此任务的VBA宏

Dim p as Page 
Dim shp as Shape 
For each p in vDoc.Pages 
For Each shp In p.Shapes 
    shp.Characters.Text = Replace(shp.Characters.Text, "TABLE_NAME", screenTitle & " Master") 
Next shp 
p.export(n) 
Next p 
相关问题