科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件用VB创建MS Office的COM加载项

用VB创建MS Office的COM加载项

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

本文演练了用VB创建COM加载项,COM 加载项可以在不给用户增加复杂性的情况下扩展应用程序的功能。

作者:hhjjhjhj 来源:论坛 2007年10月14日

关键字:

  • 评论
  • 分享微博
  • 分享邮件
将命令条控件集成到加载项中

  如果您的 COM 加载项有一个用户界面,就可以添加用于显示命令条的代码,以方便用户运行您的加载项。此演练将显示如何在宿主应用程序中包含用于创建新命令条控件(工具栏按钮或菜单项)的代码。加载您的加载项时,会同时加载控件,用户可以通过单击按钮或菜单项打开并使用加载项。

  创建命令条控件

  1.查找 OnConnection 事件过程。在 Private Sub 和 End Sub 行之间,添加代码以创建新的命令条控件并将其指派给支持事件的 CommandBarButton 对象变量。整个过程将显示如下:

Private Sub IDTExtensibility2_OnConnection(ByVal _
Application As Object, ByVal ConnectMode As _
AddInDesignerObjects.ext_ConnectMode, ByVal AddInInst _
As Object, custom() As Variant)

' 存储启动引用
Set appHostApp = Application

' 添加命令条
Set cbbButton = CreateBar()
End Sub

  如果您熟悉使用 Visual Basic 创建加载项,就可能注意到,在 VBA 中创建加载项时,不用设置命令条按钮 OnAction 属性的值。这是因为事件自动为您挂起。

  2.查找 OnDisconnection 事件过程。在 Private Sub 和 End Sub 行之间,添加代码以便在卸载加载项时删除命令条控件。整个过程将显示如下:

Private Sub IDTExtensibility2_OnDisconnection(ByVal _
RemoveMode As AddInDesignerObjects.ext_DisconnectMode, _
custom() As Variant)

RemoveToolbar
' 移除要关闭的引用
Set appHostApp = Nothing
Set cbbButton = Nothing
End Sub

  3.通常,只要在代码中存储函数,就会在 OnConnection 过程中添加您调用的函数对应的代码。该函数将创建命令条,设置命令按钮的属性,并提供错误信息的处理。

Public Function CreateBar() As Office.CommandBarButton
' 指定命令条
Dim cbcMyBar As Office.CommandBar
Dim btnMyButton As Office.CommandBarButton

On Error GoTo CreateBar_Err

Set cbcMyBar = appHostApp.CommandBars.Add(Name:="GreetingBar")

' 指定命令条按钮
Set btnMyButton = cbcMyBar.Controls.Add(Type:=msoControlButton, _
Parameter:="Greetings")
With btnMyButton
.Style = msoButtonCaption
.BeginGroup = True
.Caption = "&Greetings"
.TooltipText = "Display Hello World Message"
.Width = "24"
End With

' 显示并返回命令条
cbcMyBar.Visible = True
Set CreateBar = btnMyButton
Exit Function

CreateBar_Err:
MsgBox Err.Number & vbCrLf & Err.Description
End Function

  4.在 OnDisconnection 过程中添加您调用的函数对应的代码。该函数在加载宏被卸载时会删除命令条。

Private Function RemoveToolbar()
 appHostApp.CommandBars("GreetingBar").Delete
End Function

  5.为 CommandBarButton 对象添加一个单击事件过程。该过程将在单击新的命令条按钮时被调用。下面的代码将显示一条消息以表明单击事件正在进行:

Private Sub cbbButton_Click(ByVal Ctrl As Office.CommandBarButton, CancelDefault As Boolean)
 MsgBox ("Hello World!")
End Sub

  6.保存您的工程。

  现在,COM 加载项完成。其余的步骤就是调试和测试代码以确保它运行顺利,然后将加载项放入 DLL 文件中,该文件可以在其他装有 Office XP 的计算机上进行分发和使用。
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章