存档在 ‘Visual Basic’ 分类中.

使用VB6编写COM加载项

Technorati 标签: ,,

下面记录下使用VB6为Excel创建COM加载项的步骤,以供日后有用时参考。

步骤1:打开VB6。在“新建工程”对话框中选择“外接程序”,单击“打开”按钮,如下图所示。

NewAddinDia

此时,创建一个名为MyAddIn的工程,包含一个名为frmAddIn的窗体和一个名为Connect的Designer类变量。

步骤2:将工程名称改为MyFirstCOMAddIn。

步骤3:删除默认的窗体frmAddIn。

步骤4:删除Connect中的全部代码。

步骤5:在工程资源管理器窗口双击Connect打开加载宏设计器窗口,并对其进行相应的设置,如下图所示。

SetAddInDesigner 

上图中,在“通用”选项卡中设置了COM加载项在Excel的COM加载项对话框中显示的名称及相应的描述,并设置应用程序为Microsoft Excel,选择初始化加载行为为Startup,表示在Excel每次启动时都运行该加载项,当然还有其他三个选项分别设置何时启用加载项。该对话框还有一个名为“高级”的选项卡,此时我们暂且不用。

步骤6:在工程资源管理器窗口右击Connect,选择“查看代码”,打开代码窗口。

步骤7:在代码窗口顶部左侧的对象列表框中选择AddinInstance对象,在右侧的事件列表框中选择OnConnection事件,并输入下面的代码:

   1: Private Sub AddinInstance_OnConnection(ByVal Application As Object, _
   2:                                        ByVal ConnectMode As AddInDesignerObjects.ext_ConnectMode, _
   3:                                        ByVal AddInInst As Object, _
   4:                                        custom() As Variant)
   5:     MsgBox “这是使用VB6创建的COM加载项”
   6: End Sub

然后,再在事件列表框中选择OnDisconnection事件,并输入下面的代码:

   1: Private Sub AddinInstance_OnDisconnection(ByVal RemoveMode As AddInDesignerObjects.ext_DisconnectMode, _
   2:                                           custom() As Variant)
   3:     MsgBox “将要关闭Excel工作簿,您保存里面的数据了吗.”
   4: End Sub

步骤8:保存所有的工程文件。

步骤9:单击菜单“文件——生成MyFirstCOMAddIn.dll”,如下图所示。

MakeMyFirstCOMAddInDll

至此,这个COM加载项制作完成。

步骤10:打开Excel 2003,将会出现一个消息框,这是在COM加载项的OnConnection事件中设置的,如下图所示。

AddInInformationWin1 

关闭Excel 2003时,将会出现一个消息框,这是在COM加载项的OnDisconnection事件中设置的,如下图所示。

AddInInformationWin2

这的加载项之所以在Excel 2003会话开启时运行,是因为我们在设计加载项时选择了选项Startup,即在Excel启动时加载该加载项。下面,在Excel 2003中设置能够启动或关闭COM加载项。

步骤11:在Excel 2003中单击菜单“工具——自定义”,在“自定义”对话框中的选择“命令”选项卡,在左侧的类别列表框中选择“工具”,在右侧的命令列表框中找到“COM加载项”条目(如下图所示),并将其拖至Excel菜单栏中“工具”菜单下。单击“关闭”按钮关闭自定义对话框。

SetCOMAddinInExcel

步骤12:单击菜单“工具——COM加载项”,弹出“COM加载项”对话框,其中列出了所有可用的COM加载项,如下图所示。

COMAddinINExcel

为了使刚创建的My First COM Add-In加载项不可用,可取消其前面的复选框选择。也可以通过“删除”按钮删除该加载项。

标签: 没有标签

《Visual Basic 2005大学教程》学习阶段小结

终于很好地学了一阵子Visual Basic.Net!
以前就很想好好地学一下Visual Basic.Net,原因很简单:自已在研究VBA,而VB与VBA是最贴近的,可以使自已进一步拓展Excel程序开发的视野和方法。同时,在Visual Studio.Net套件中也提供了强大的Office开发工具,这也是促使自已学习VB.Net的原因。
看过《Visaul Basic 2005入门经典》,但越往后就越看不下去了,更不用说《Visual Basic 2005高级编程》了。前不久,在书店看到了这本书─—《Visual Basic 2005大学教程》,其英文名为《Visual Basic 2005 How to Program》(Third Edition),粗看了一下该书的封面和介绍后,虽然贵了点,但仍忍不住买了下来。利用五一小长假的时间,将该书前12章狂啃了一番。
G0060170
想不到这本书真的是买对了!也不由得让自已再发一通感慨:一本好书真的是非常有助于对一门知识的快速学习啊!
1、书中包括并穿插着大量的示例,并有清晰明了的讲解。
2、以实例演示了抽象的概念,很清楚地讲解了类、对象、属性、方法、封装、继承、多态、接口等,让读者很容易理解,并最终掌握。
3、书上贯穿着软件工程的设计方法,穿插着大量的软件工程知识、编程技巧和预防错误的技巧,很值得借鉴。
4、分章分块通过一个大型的实例讲解,介绍了UML,从而一步步构建大型软件程序。
5、配有大量的练习,让读者举一反三,巩固消化所学的知识。
通过学习,使自已:
1、有了使用.NET技术开发Excel应用程序的初步基础。
2、流行编程语言的技术技巧,编程资源,大量开发人员的研究成果,开拓了程序开发的思路和眼界,以此为基础,反思VBA,从而更好地巩固VBA,应用其优势,同时可以利用.NET相应地拓展。