使用C#中的自动化自定义MS Word 2010中的功能区

时间:2010-12-19 12:30:55

标签: c# ms-word ribbon office-automation

我正在尝试从我的C#应用​​程序自动化MS Word,并且在更改功能区UI时遇到问题。 我能找到的所有样品都使用IRibbonExtensibility接口,该接口仅可从Addins获得。 是否可以使用自动化执行此操作?

2 个答案:

答案 0 :(得分:2)

  

使用IRibbonExtensibility接口,该接口仅可从Addins获得

这意味着它无法通过Automation工作,接口不会在进程外类型库中公开。您必须使用VSTO编写加载项,使用C#+ Office + Word 2007加载项项目模板开始。

答案 1 :(得分:0)

我所做的是构建实现2个接口的小型ATL Addin: IDTExtensibility2和IRibbonExtensibility 自定义XML只是从文件加载。

在C#代码中,编码非常简单:

        RegistryKey key = Registry.CurrentUser.CreateSubKey(@"Software\Microsoft\Office\Word\Addins\RibbonLoaderLib.RibbonLoader");
        key.SetValue("LoadBehavior",2,RegistryValueKind.DWord);
        key.SetValue("Description","Ribbon Loader Add-In",RegistryValueKind.String);
        key.SetValue("FriendlyName","Ribbon Loader Add-In",RegistryValueKind.String);
        wordApp_.COMAddIns.Item("RibbonLoaderLib.RibbonLoader").Connect = true;