如何在模板路径更改时通过VBA检索附加模板的名称

时间:2013-09-04 13:46:22

标签: vba templates ms-word

我保留了我在Dropbox中使用的文件的模板,当我更改为具有不同Dropbox路径的计算机时,需要将模板重新附加到文档。我想用宏来做这件事。

我仍然可以在“模板和加载项”窗口中看到最初附加模板的名称,因此信息必须存储在文档中。

但是,如果我尝试通过编写

来通过VBA检索以前附加的模板的名称
strTemplate = ActiveDocument.AttachedTemplate

结果将是“Normal.dotm”而不是“MyTemplate.dotm”,这实际上很有意义,但不是我想要的。

有没有办法检索以前附加的模板的名称和路径?

2 个答案:

答案 0 :(得分:1)

我认为你可以从

获得全名(路径+名称)
  

Application.Dialogs(wdDialogToolsTemplates).Template

的名称
  

ActiveDocument.BuiltinProperties(wdPropertyTemplate)

我第一次尝试第一次,它似乎没有用,但我本来可以检查错误的文件。您将找不到Dialog对象下记录的Template属性 - 它记录在here

如果那些不起作用,我能看到的唯一其他方法就是

一个。查看.docx关闭时(对于.docx),或者可能(我没有检查过)将dsofile.dll用于.doc,或

湾插入字段{template \ p},执行它并检索其结果文本

答案 1 :(得分:1)

我在堆栈溢出处找到了答案(不幸的是,只有在发布我的问题后)作为“如何在不解析附加模板的情况下打开word文档?”的答案:

strOldTemplate = Dialogs(wdDialogDocumentStatistics).Template