方案: word启动时,它通过vba连接到服务,该服务返回路径列表。这些路径中的每一个都指向一个.dotm文件。这些文件包含有关各种控件的信息(功能区内部,例如,添加了特定页脚的按钮)。
我想要的是:我需要加载多个.dotm文件,但不能将它们复制或移动到特定位置。
基本上就是这样。我进行了广泛的搜索,我担心这种方法实际上是不可能的,而且我必须将所有dotm文件复制到启动文件夹中,让Word来完成其余工作
有什么方法可以将多个dotm文件加载到单个word文件中,从而使功能区根据dotm的不同而扩展
最诚挚的问候,谢谢:)
答案 0 :(得分:1)
摘自Word文档:
此示例将模板“ Letter.dot”附加到活动文档。
ActiveDocument.AttachedTemplate = "C:\Templates\Letter.dot"
您可以使用它来将所有模板附加到文档。
另请参阅Templates
集合。
您可以通过将Add方法与Addins集合一起使用来将模板添加到Templates集合中,以加载全局模板
Sub AddTemplate()
' For this example to work correctly, verify that the
' path is correct and the file exists.
AddIns.Add FileName:="C:\Program Files\Microsoft Office" _
& "\Templates\Letters & Faxes\MyFax.dot", Install:=True
End Sub
答案 1 :(得分:1)
不可能将多个模板加载到单个Word文件中。只能将一个模板附加到文档。
可以在Word环境中将多个模板作为加载项加载。然后,这些文件将可用于在Word应用程序中打开的所有文档。使用Addins-Add
方法将模板添加到“文档/文档模板”中的列表中,并在“全局模板和加载项”列表中。 (这等效于对话框中的“添加”按钮。)
Dim bInstalled as Boolean
Dim Path as String
Dim fileName as String
'Populate the variables, then...
Application.Addins.Add Filename:=Path & fileName, Install:=bInstalled
如果希望模板在列表中但未加载,则将bInstalled
设置为false(例如,不显示功能区);将其设置为true也可以加载它。模板一旦进入列表,无论是加载还是卸载,通常都会保留在列表中,除非以某种方式重置了Word。如果先检查列表中是否已存在某个加载项,然后再将其添加,则用于管理模板加载项的代码将更加高效。
可以使用Addins.Installed
属性来加载/卸载列表中的模板。如果模板中的工具仅对某些文档可用,则可以使用事件(例如DocumentChange
)来动态加载/卸载它们。
加载加载项和管理加载项(事件)的代码可能应该在Word的“启动”文件夹中的中央模板中,或者在直接附加到文档的模板中。