打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
我的dll封装学习笔记(二)

本文内容:VB6企业版封装sub过程,做COM加载项

适用范围:32位excel。

只讲步骤,不讲深层次原理,因为我也不懂。

我们了解到,封装COM加载项的难点有两个:一是XML代码的编写(用来生成功能区外观菜单的),二是application对象替换为某个代指它的变量刚听是有点懵逼,听我慢慢说来。

知识点准备(先把这两个难点说说,其他就是按模板步骤傻瓜操作即可。)

▌XML代码

XML代码和解释如下:

我们要做自己的菜单栏的话,就是用下述代码修改为自己想要的样式。

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">

 <ribbon>

      <tabs>

          <tab id="t1" label="Excel小白工具箱" >

    <group id="Group1" label="我的工具">

      <button id="button1" label="删除选区"  imageMso="HappyFace" size="large" onAction="del"/>

    </group>

      </tab>

      </tabs>

</ribbon>

</customUI>


将VBA代码中的省略掉的application加上变量xlapp/

VBA代码中的application替换为某个代指它的变量

比如:

Sub del() Selection.Clear End Sub

写在VB6.0模块中的时候就要修改为

Sub del()
xlapp.Selection.Clear
'xlapp是自己定的,VB6.0中定义全局变量的时候定义的是啥,这里就写啥
End Sub

比如:

Application.ScreenUpdating = False

Application.ScreenUpdating = True

改为:

xlapp.ScreenUpdating = False

xlapp.ScreenUpdating = True


基础准备工作已做完

接下来说傻瓜步骤:

●第一步:打开VB6.0企业版,新建项目→外接程序(必须是企业版,才有外接程序)

后台回复“VB6”获取VB6.0企业版软件。

●第二步:

添加对Excel程序的引用。勾选“Microsoft Excel 14.0 Object Library”和

“Microsoft Office 14.0 Object Library” 默认的是Office2010选14.0版本。

年份版本对应关系:

office2003 : 11.0/office2007: 12.0/office2010 : 14.0/office201315.0

注意:如果电脑中同时安装WPS或者其他版本office,切记要把其引用去掉,否则无法勾选“Microsoft Excel 14.0 Object Library”和“Microsoft Office 14.0 Object Library”

●第三步:

移除工程资源管理器中窗体控件,有个connect的设计器,右键“查看对象”,对他的属性进行修改。

●第四步:

工程添加模块,写入“Public xlapp As Excel.Application”’声明一个公共变量,代表Excel。

●第五步:

工程资源管理器中有名为connect的设计器,右键“查看代码”,删除原有所有代码。

原文粘贴如下代码:只需修改核心语句

上面图中代码如下:

Implements IRibbonExtensibility


Private Function IRibbonExtensibility_GetCustomUI(ByVal RibbonID As String) As String

IRibbonExtensibility_GetCustomUI = LoadResString(101)


'用 LoadResString函数读取资源编辑器中标识号为101的字符串,然后将这个字符串赋值给IRibbonExtensibility_GetCustomUI,COM加载项会调用本函数的返回值去创建功能区菜单

End Function



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

Set xlapp = Application

End Sub



Sub del(control As IRibbonControl)

xlapp.Selection.Clear

End Sub

'核心语句:你要封装什么sub过程就写在这里即可。
(control As IRibbonControl)不可省略。



●第六步:

单击菜单“外接程序”---“外接程序管理器”。在“可用外接程序”列表中选择“VB6 资源编辑器”,将下方“加载/卸载”复选框勾选。点“确定”。

单击“工具”----“资源编辑器”,单击工具栏

字样图标。双击“101”后面的空格,将编辑好的XML代码粘贴到101后面的空格里面。

●第七步:

生成DLL并注册

注册:

新建文本文件,将如下代码粘贴进去,保存,后缀名改为bat。

regsvr32 C:\Users\Administrator\Desktop\MyAddIn.dll

卸载:

regsvr32 /u  C:\Users\Administrator\Desktop\MyAddIn.dll

双击运行注册bat,大功告成!!可以撒花了

我们来测试一下功能:

完美运行!

这只是一个简单的例子,复杂的比如:设置其他种类的按钮。自己摸索或者和我讨论均可。有这个引子,其余的都不是事。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
【学习VSTO 】—— 制作自定义窗格1
Visual Basic调用Excel
VBA学习笔记78: VBA函数封装
VB打开EXCEL的方法
.NET操作Excel COM对象
VB.NET创建快捷方式的两种方法
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服