将visio文档的目录递归到"查找和替换"所有超链接地址

时间:2014-08-12 08:29:18

标签: vba ms-office visio visio-2010

我使用以下VBA脚本替换特定Visio文档中所有超链接中的地址。 (用原始空格替换%20以允许链接在Chrome / Firefox中运行。)

Sub ChangeHyperlinks() ' change all hyperlinks on all shapes on all pages that start with
     ' "%20" to start with " "

    Dim pg As Page 
    Dim shp As Shape 
    Dim hl As Hyperlink 

    For Each pg In ActiveDocument.Pages 
        For Each shp In pg.Shapes 
            For Each hl In shp.Hyperlinks 
                hl.Address = Replace(hl.Address, "%20", " ") 
            Next 
        Next 
    Next 

End Sub 

我想要一种方法将上述代码应用于特定文件夹和子文件夹中的所有Visio文档。

1 个答案:

答案 0 :(得分:0)

您可能希望使用FileSystemObject类生成文件夹中所有VBA文件的列表,包括子文件夹。如果您搜索FileSystemObject和VBA,应该有示例。

然后,您可以遍历文件路径列表,并使用Visio的Application.Documents.Open例程打开每个文件,运行ChangeHyperlinks宏,然后保存并关闭文件。