(使用Windows 10和MS Word 2016.全局模板为:Normal.dotx和Autoload.dotm。某些文档的附加模板是:Reference.dotx)
大家好,
我在VBA中获取文档的附加模板时遇到问题。
我有一个加载MS Word时加载的全局模板,称为Autoload.dotm。但是,对于某些特定文档,它们使用附加模板,该模板不是全局模板(Autload.dotm)或常规模板(Normal.dotx)。此附加模板称为Reference.dotx。
所以我使用ActiveDocument.AttachedTemplate。但这会返回Autoload.dotm,而不是Reference.dotx。我需要查看Developer->文档模板 - >模板选项卡 - >文档模板中定义的附加模板是否为Reference.dotx。 (不要认为它有所作为,但是"自动更新文档样式"复选框已选中。)有人知道如果文档使用Reference.dotx我怎么能找到?我不需要返回任何全局模板。
我尝试获取附加模板的代码很简单:
If (ActiveDocument.AttachedTemplate = "Reference.dotx") Then
PrepareDocument_enabled = True
End If
答案 0 :(得分:0)
也许这会对你有帮助吗?它将显示使用的模板。
Sub Macro1()
Dim strPath As String
strPath = Dialogs(wdDialogToolsTemplates).Template
MsgBox strPath
End Sub
否则,您可以使用它来更改模板
Sub ChangeAttachedTemplate()
Dim oDoc As Document
Dim oTemplate As Template
Dim strTemplatePath As String
Set oDoc = ActiveDocument
If oDoc.Type = wdTypeTemplate Then Exit Sub
Set oTemplate = oDoc.AttachedTemplate
Debug.Print oTemplate.FullName
' Path is probably: C:\Users\USERNAME\AppData\Roaming\Microsoft\Templates\
If InStr(UCase(oTemplate.FullName), UCase("Path of the template")) > 0 Then
oDoc.AttachedTemplate = "PATH TO TEMPLATE" & "TEMPLATE NAME.dotm"
End If
End Sub