分享

如何用VB6的COM 外接程序对word2007功能区进行定制(4.24日更新代码)

 liuhoubin 2011-07-21
用VB6的COM 外接程序可以方便的对office系列软件进行定制,下面是我在制作过程中的体会。
一、创建外接程序
启动VB,在新建工程对话框中选择“外接程序”
 
二、初始定制
1、在“项目资源管理器”窗口中,通过右键单击“Connect”打开设计器窗口,然后选择“查看对象”。从“应用程序”列表中选择“Microsoft Word”。
2、在“初始加载行为”列表中,选择“Startup”。
3、将外接程序显示名称更改为“Word 2007功能区测试 ”。
4、在项目资源管理器中,右键单击“MyAddin”,然后在“属性”窗口中将该外接程序的名称更改为“RibbonForWord2007”。
5、从该项目中删除“frmAddin”(这个在本例中暂时不需要)。
6、在工程-引用中将Microsoft Office Object 8.0更改为Microsoft Office Object 12。(备注:只有这样才能定制和添加对 IRibbonExtensibility 接口的引用)
三、输入代码
1、在“项目”窗口中,右键单击“Connect”项并选择“查看代码”。在设计器的代码窗口中删除所有代码,因为这些代码可用于 Visual Basic 外接程序而不适用于 Microsoft Office 外接程序。
2、输入如下的代码

Option Explicit
Dim oWD As Object
Implements IRibbonExtensibility2 '添加对 IRibbonExtensibility 接口的引用

'启动
Private Sub AddinInstance_OnConnection(ByVal Application As Object, ByVal ConnectMode As AddInDesignerObjects.ext_ConnectMode, ByVal AddInInst As Object, custom() As Variant)
Set oWD = Application
MsgBox "我的com加载项已经成功加载!"
End Sub

'实现IRibbonExtensibility接口的唯一成员 GetCustomUI,此过程调用 GetRibbonXML 方法,正如其名称所示,
'该方法将自定义 XML 返回到 GetCustomUI 方法,后者然后将自定义 XML 添加到功能区用户界面以便在加载外接程序时实现它。
Public Function IRibbonExtensibility_GetCustomUI(ByVal RibbonID As String) As String
      IRibbonExtensibility_GetCustomUI = GetRibbonXML()
End Function

'添加 XML 自定义标记代码
Public Function GetRibbonXML() As String
   Dim sRibbonXML As String

    sRibb"http://schemas.microsoft.com/office/2006/01/customui"" >" & _
                "<ribbon>" & _
                "<tabs>" & _
                "<tab id=""CustomTab"" label=""sanjie"">" & _
                "<group id=""SampleGroup"" label=""Sample Group"">" & _
                "<button id=""Button"" label=""Insert Name"" size=""large"" imageMso=""HappyFace"" InsertCompanyName"" />" & _
                "</group >" & _
                "</tab>" & _
                "</tabs>" & _
                "</ribbon>" & _
                "</customUI>"
   
   GetRibbonXML = sRibbonXML
   
   End Function

'控件回调的过程
Public Sub InsertCompanyName(ByVal control As IRibbonControl)
   ' Inserts the specified text at the beginning of a range.
   Dim MyText As String
   Dim MyRange As Object
   Set MyRange = oWD.ActiveDocument.Range
   MyText = ""http://www./""
   ' Inserts text at the beginning
   ' of the active document.
   MyRange.InsertBefore (MyText)
End Sub

3、需要注意的是:了解XML语言和Office Ribbon定制技术的朋友,每一项元素的值必须要用英文4个双引号引起来。
四、发布该com加载项
单击菜单【文件】→【生成RibbonForWord2007.dll】即可完成加载项的发布。
五、测试
当你打开word2007的时候,如果成功加载首先会提示你“我的com加载项已经成功加载!”,然后会在功能区添加一个选项卡,如图3所示,单击该选项卡的按钮,就会自动输入信息。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多