ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:341.93KB ,
资源ID:9203651      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9203651.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(使用VB6编写COM加载项.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

使用VB6编写COM加载项.docx

1、使用VB6编写COM加载项使用VB6编写COM加载项一个简单的COM加载项示例步骤1:启动VB6,在“新建工程”对话框中选择“外接程序”,单击“打开”按钮,如下图。VB6将自动创建一个名为MyAddIn的工程,包含一个名为frmAddIn的窗体和一个名为Connect的Designer类变量。步骤2:将工程名称修改为MyFirstCOMAddIn。步骤3:删除默认的窗体frmAddIn。步骤4:删除Connect中的全部代码。步骤5:在工程资源管理器窗口双击Connect打开加载项设计器窗口,并对其进行相应的设置,如下图所示。如上图所示,在“通用”选项卡中设置COM加载项在Excel的COM加

2、载项对话框中显示的名称及相应的描述。设置“应用程序”为Microsoft Excel,根据用户计算机上安装的Excel选择相应的应用程序版本,这里选择“Microsoft Excel 14.0”,即Excel 2010。选择初始化加载行为为“Startup”,即在Excel启动时运行该加载项,还可以选择其它的加载选项。说明: 外接程序显示名称:填写加载项的名字 外接程序描述:描述所创建的加载项的作用和功能 应用程序:使用所创建的加载项的应用程序。 应用程序版本:使用所创建的加载项的应用程序的版本。 初始化加载行为:当应用程序开启时,是否自动装载该加载项,有四个选项。若设置为Startup,则E

3、xcel启动时装载该加载项;若设置为Load on demand,则在Excel中需要使用该加载项时再装载该加载项。 步骤6:在工程资源管理器窗口的Connect中单击右键,选择“查看代码”,打开代码窗口。步骤7:在代码窗口顶部左侧的对象列表框中选择AddinInstance对象,在右侧的事件列表框中选择OnConnection事件,输入的代码如下:Private Sub AddinInstance_OnConnection(ByVal Application As Object, _ByVal ConnectMode As AddInDesignerObjects.ext_ConnectMo

4、de, _ByVal AddInInst As Object, custom() As Variant)MsgBox 这是使用VB6创建的COM加载项.End Sub然后,再在事件列表框中选择OnDisconnection事件,输入的代码如下:Private Sub AddinInstance_OnDisconnection(ByVal RemoveMode As AddInDesignerObjects.ext_DisconnectMode, _custom() As Variant)MsgBox Excel工作簿将要关闭,里面的数据已经保存了吗?End Sub步骤8:保存所有的工程文件。步

5、骤9:单击菜单“文件生成MyFirstCOMAddIn.dll”。至此,这个简单的COM加载项编写完成。步骤10:打开Excel 2010,将会出现一个消息框,显示在COM加载项的OnConnection事件中设置的消息,如下图所示。关闭Excel 2010时,将会出现一个消息框,显示在COM加载项的OnDisconnection事件中设置的消息,如下图所示。这个加载项之所以会在Excel 2010会话开启时运行,是因为我们在设置加载项时选择了选项“Startup”,即在Excel启动时加载该加载项。单击“开发工具”选项卡“加载项”组中的“COM加载项”,显示“COM加载项”对话框,列出了所有

6、可用的COM加载项,如下图所示。在该对话框中,可以取消某加载项前的复选,使其不可用,或者通过“删除”按钮删除该加载项。一个菜单COM加载项示例步骤1:启动VB6,在“新建工程”中选择“外接程序”,打开新工程。步骤2:在工程资源管理器中将会有一个名为frmAddIn的窗体和一个名为Connect的设计器对象,如下图所示。移除工程资源管理器窗口中的frmAddIn窗体,设置Connect设计器对象。步骤3:双击设计器对象,出现一个设计器窗体,对其进行设置,如下图所示。步骤4:添加对Excel的引用。选择菜单“工程引用”,在“引用”对话框中选择“Microsoft Excel 14.0 Object

7、 Library”前的复选框。步骤5:设置工程属性。选择菜单“工程MyAddIn属性”,或在工程资源管理器中单击右键,选择“MyAddIn属性”命令,在“工程属性”对话框中设置工程名称和工程描述。步骤6:编写Connect设计器代码。在Connect设计器对象上右击并选择“查看代码”或者单击Connect设计器后再单击窗口顶部的“查看代码”按钮,出现VB自动生成的代码。删除其中的代码,只保留OnConnection过程和OnDisconnection过程,用于在应用程序中装载和卸载加载项,并在其中添加自已需要实现的功能的代码。在本示例中,Connect设计器中的代码如下:-this metho

8、d adds the Add-In to VB-Private Sub AddinInstance_OnConnection(ByVal Application As Object, _ByVal ConnectMode As AddInDesignerObjects.ext_ConnectMode, _ByVal AddInInst As Object, custom() As Variant)设置应用程序变量Set xlApp = Application设置自定义菜单子程序CreateToolBarButtonsEnd Sub-this method removes the Add-In

9、from VB-Private Sub AddinInstance_OnDisconnection(ByVal RemoveMode As AddInDesignerObjects.ext_DisconnectMode, _custom() As Variant)释放占用的存Set xlApp = Nothing移除自定义的菜单子程序RemoveToolBarButtonsEnd Sub步骤7:选择菜单“工程添加模块”命令,添加一个标准的模块并添加相应的代码。声明变量、类实例和集合Public xlApp As Excel.ApplicationDim ButtonEvent As cbEve

10、ntsDim ButtonEvents As Collection定义自已菜单的子程序Public Sub CreateToolBarButtons()为了确保只添加按钮一次,先移除它们RemoveToolBarButtons声明变量Dim cbBar As Office.CommandBarDim btNew As Office.CommandBarButton创建一个新的集合Set ButtonEvents = New Collection查找工作表菜单栏(带有文件、编辑、视图等命令)Set cbBar = xlApp.CommandBars(Worksheet Menu Bar)添加一个

11、新按钮到工具栏菜单Set btNew = cbBar.FindControl(Id:=30007).Controls.Add(msoControlButton, , , , True)With btNew.OnAction = Sub1设置一个唯一的标签,使自定义的控件在后面容易找到或删除.Tag = COMAddinTest设置提示文本.ToolTipText = Calls Sub1设置显示在菜单中的标题.Caption = Sub1End With获取cbevents类中的一个新实例Set ButtonEvent = New cbEvents将之指定给所创建的按钮Set ButtonEv

12、ent.cbBtn = btNewButtonEvents.Add ButtonEvent添加另一个按钮Set btNew = cbBar.FindControl(Id:=30007).Controls.Add(msoControlButton, , , , True)With btNew.OnAction = Sub2设置一个唯一的标签,使自定义的控件在后面容易找到或删除.Tag = COMAddinTest设置提示文本.ToolTipText = Calls Sub2设置显示在菜单中的标题.Caption = Sub2End With获取cbevents类中的一个新实例Set Button

13、Event = New cbEvents将之指定给所创建的按钮Set ButtonEvent.cbBtn = btNewButtonEvents.Add ButtonEventEnd Sub删除自定义菜单的子程序Public Sub RemoveToolBarButtons()Dim cbBar As CommandBarDim cbCtr As CommandBarControl忽略错误On Error Resume Next需要从命令中移除按钮,首先找到该按钮Set cbBar = xlApp.CommandBars(Worksheet Menu Bar)使用所设置的标签查找控件Set c

14、bCtr = cbBar.FindControl(, , COMAddinTest)While Not cbCtr Is Nothing删除cbCtr.DeleteSet cbCtr = cbBar.FindControl(, , COMAddinTest)Wend恢复占用的存Set ButtonEvents = NothingSet ButtonEvent = NothingEnd Sub示例子过程Sub Sub1()MsgBox Hello!End Sub示例子过程Sub Sub2()MsgBox Hi!End Sub步骤8:创建类模块处理菜单栏事件。选择菜单“工程添加类模块”,将其命名为

15、cbEvents,添加代码:Public WithEvents cbBtn As CommandBarButtonPrivate Sub cbBtn_Click(ByVal Ctrl As Office.CommandBarButton, CancelDefault As Boolean)忽略产生的任何错误On Error Resume Next检查OnAction属性并执行相应的程序Select Case Ctrl.OnActionCase Sub1Sub1Case Sub2Sub2End Select查找指定给OnAction属性的程序删除ExcelCancelDefault = True

16、End Sub步骤9:生成dll文件。选择“文件生成MyAddIn.dll”。步骤10:安装Excel COM加载项。(1)注册DllDll文件需要注册到Windows中以便能够运行。如果是在VB6中生成的Dll文件,将在所创建该加载项的计算机中自动注册。也可以手工注册。点击屏幕左下角的“开始”按钮,选择“所有程序附件运行”,在出现的“运行”对话框中输入“regsvr32.exe”。若要移除或删除dll,先要注销它,即在“运行”对话框中使用regsvr32.exe命令并附加/u参数实现。(2)在Excel中安装加载项在VB6中创建该加载项时,在设计器中设置初始化加载行为时选择“Startup”

17、,则在装载Excel时,会自动装载加载项并运行。如果没有选择“Startup”,则需要手动装载。单击“开发工具”选项卡“加载项”组中的“COM加载项”,在“COM加载项”对话框中,选取或取消选取所需加载项前的复选框来装载和卸载加载项。加载上述加载项后,Excel的“加载项”选项卡如下图所示。Excel2007中的COM加载项下面的容介绍了Excel2007中COM加载项的一些改变。(1)介绍Excel很好地做了一些涉及到向后兼容的工作。在Excel 2000、Excel XP(2002)或Excel 2003中创建的COM加载项(CAI)不需要修改就应该能在Excel 2007中正常运行。然而

18、,在开发应用于不同的Excel版本中的CAIs时,应该记住一些事项。(2)菜单和命令栏Excel 2007修改了传统的界面,使用功能区(Ribbon)界面替换了菜单和命令栏控制结构。根据选择可以采用不同的面板组(面板是一组具有相关功能的按钮,在下图1中,选择“开始”,将显示7个面板组:剪贴板、字体、对齐方式、数字、样式、单元格、编辑,在开发阶段,面板(panels)称作chunks,不知道这些对象现在是否有正式的名称)。如果选择“开始”,将看到一组面板;如果单击“插入”,则会出现另一组面板。这对CAI开发意味着什么呢?意味着创建命令栏、命令栏控件或菜单项的CAI中的任何代码都不再按预料的工作。

19、仅仅可以通过Excel 2007文件格式(xlsx或xlsm)里的Excel文件来定制功能区,在Excel 2007文件格式中包含必需的XML代码用于修改功能区。(一个Excel 2007的xlsx或xlsm文件事实上是包含大约20个文本XML数据文件的Zip文件,其中一个文件用于修改功能区。)Excel 2003文件格式(xls)、XLA加载宏、COM加载项都不能修改功能区。所有的定制,无论是在Excel 2003中已有的命令栏中的新菜单项、控件,还是新的命令栏,都将显示在功能区“加载项”中的菜单命令或自定义工具栏命令面板组中。这将混淆各加载项的命令元素。下图为功能区“加载项”视图:在Exc

20、el 2003和以前的版本中,可能会放置一些菜单项在“工具”菜单中、其它的在“视图”菜单中、以及“数据”菜单中,可能放置菜单项和命令栏按钮在合乎逻辑的位置。在Excel 2007中,所有的定制都被放置在加载项视图中的“菜单命令”和“工具栏命令”面板组中。(3)加载项关于COM加载项的联接信息,为Excel指出了可用的CAI,它们存放在系统注册表的两个位置中的其中一个:HKEY_CURRENT_USERSoftwareMicrosoftOfficeExcelAddIns (HKCU) 或HKEY_LOCAL_MACHINESoftwareMicrosoftOfficeExcelAddIns (H

21、KLM)。在Excel 2003和早期版本中,仅仅配置在HKCU中的CAIs显示在COM加载项对话框中,这避免某用户禁用在本机上为所有用户使用的CAI。在Excel 2003和早期版本中,用户仅能装载或卸载配置在HKCU中的CAIs,不能够装载或卸载配置在HKLM中的CAI。在Excel 2007中,所有的加载项都配置在HKEY_CURRENT_USERSoftwareMicrosoftOfficeExcelAddIns或HKEY_LOCAL_MACHINESoftwareMicrosoftOfficeExcelAddIns在COM加载项对话框中是可见的,这意味着单个的用户可以禁用或卸载本机上所有用户使用的CAIs。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1