我正在尝试创建VSTO Word加载项,以在功能区中显示一些按钮,这些按钮链接到存储在我们文件服务器上的模板。
我正在通过xml文件将按钮添加到功能区。
<?xml version="1.0" encoding="UTF-8"?>
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" onLoad="Ribbon_Load">
<ribbon>
<tabs>
<tab idMso="TabAddIns">
<group id="ContentGroup" label="YP Council Templates">
<button id="textButtonLetter" label="Letter"
screentip="Letter" onAction="OnTextButton"
supertip="Open the Letter Template."/>
<button id="textButtonMemorandym" label="Memorandum"
screentip="Memorandum" onAction="OnTextButton"
supertip="Open the Memorandum Template."/>
<button id="textButtonFacsimile" label="Facsimile"
screentip="Facsimile" onAction="OnTextButton"
supertip="Open the Facsimile Template."/>
<button id="textButtonPolicy" label="Policy Template"
screentip="Policy Template" onAction="OnTextButton"
supertip="Open the Policy Template."/>
</group>
</tab>
</tabs>
</ribbon>
</customUI>
通过上面的代码,我已经成功地将按钮添加到了组中,但是想知道如何创建Action来打开Word模板文件吗?它是否通过宏执行,如果是,宏将转到何处? (注意-onAction =“ OnTextButton”代码是从我使用的示例中获取的)
最终目标是,一旦打开模板文件(基于模板的新文档),他们便应将其用作新文档的基础。
关于, 斯图尔特
答案 0 :(得分:1)
使用Word时,不应打开模板文件。 (通常这意味着计划是使用“另存为”来制作新文档-充满了危险。)
Word具有Documents.Add()
方法来创建一个新文档作为模板文件的“副本”。模板文件中的所有样板文件以及模板中定义的样式都会被带入新文档。
如果这是一个真实的模板(* .dotx或* .dotm),则该文档会保留指向该模板的活动链接,以便用户可以访问其中存储的内容:
要使用模板(或其他文档)生成新文档,请使用Documents.Add
方法:
object missing = System.Type.Missing;
Globals.ThisAddin.Application.Documents.Add("pathToTemplateFile", ref missing,
ref missing, ref missing);
请注意,很少需要使用方法的三个可选参数,但是您应该在Word对象模型语言参考中查找它们,以了解它们的含义。