ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: henrylam

[原创] 用VB6.0制作Excel2010功能区COM加载项及自定义图标

  [复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-3-15 17:08 | 显示全部楼层
本帖已被收录到知识树中,索引项:插件开发
本帖最后由 henrylam 于 2016-3-17 09:54 编辑

直接将XML代码写在“Connect”项会有行继续标志限制,因此可以将XML代码写到资源文件中,操作方法如下:
1.先用记事本编写好用于自定义功能区的XML代码;
2.到VB6.0菜单栏“工具”中,打开“资源编辑器”,新建或选中文件,点击“acb”打开“编辑字符串表”,然后将XML代码复制、粘贴到“101”右边框中,保存即可;
资源文件添加XML代码.png
3.在“Connect”项编写调用代码。
  1. Option Explicit
  2. Implements IRibbonExtensibility '添加对 IRibbonExtensibility 接口的引用
  3. Public xlApp As Excel.Application

  4. Private Sub AddinInstance_OnConnection(ByVal Application As Object, ByVal ConnectMode As AddInDesignerObjects.ext_ConnectMode, ByVal AddInInst As Object, custom() As Variant)
  5.     Set xlApp = Application '加载时
  6. End Sub

  7. Private Sub AddinInstance_OnDisconnection(ByVal RemoveMode As AddInDesignerObjects.ext_DisconnectMode, custom() As Variant)
  8.     Set xlApp = Nothing '卸载时
  9. End Sub

  10. '调用资源文件中的XML代码用于自定义功能区
  11. Public Function IRibbonExtensibility_GetCustomUI(ByVal RibbonID As String) As String
  12.     IRibbonExtensibility_GetCustomUI = LoadResString(101)
  13. End Function

  14. 'Button1用的是系统内置图标,无需调用。Button2和Button3用的是自定义图标
  15. Function GetImage(control As IRibbonControl) As IPictureDisp
  16.     Select Case control.Id
  17.     Case "Button2"
  18.         Set GetImage = LoadResPicture(101, vbResBitmap) '调用资源文件中的位图作为功能区的图标
  19.     Case "Button3"
  20.         Set GetImage = LoadResPicture(102, vbResBitmap)
  21.     End Select
  22. End Function

  23. '下面是测试控件回调的3个过程,对应3个按钮
  24. Public Sub test1(ByVal control As IRibbonControl)
  25.     MsgBox "测试通过,按钮用的是内置图标", vbInformation
  26. End Sub

  27. Public Sub test2(ByVal control As IRibbonControl)
  28.     MsgBox "测试通过,按钮用的是自定义图标", vbInformation
  29. End Sub

  30. Public Sub test3(ByVal control As IRibbonControl)
  31.     If Not xlApp.ActiveWorkbook Is Nothing Then
  32.        xlApp.ActiveWorkbook.FollowHyperlink Address:="http://club.excelhome.net/thread-791154-1-1.html", NewWindow:=True
  33.     Else
  34.        MsgBox "没有活动工作簿", vbExclamation
  35.     End If
  36. End Sub
复制代码
VB工程文件 补充更新.rar (54.41 KB, 下载次数: 482)






评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2016-3-22 19:28 来自手机 | 显示全部楼层
学习,很受用

TA的精华主题

TA的得分主题

发表于 2016-4-27 20:58 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
請問有2012的做法嗎?裝了vb6,但一直找不到excel的應用程序

TA的精华主题

TA的得分主题

发表于 2016-5-7 22:09 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2016-5-21 21:27 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
终于更新了。

TA的精华主题

TA的得分主题

发表于 2016-5-31 14:42 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
mark,备用学习。

TA的精华主题

TA的得分主题

发表于 2016-6-5 14:00 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
henrylam 发表于 2011-11-17 19:01
四、生成DLL文件
单击VB6.0菜单栏“文件”,再点击“生成Excel2010.dll ”,即可生成COM加载项文件。
新 ...

想问下楼主VB6.0和VS里的VB有什么不同

TA的精华主题

TA的得分主题

发表于 2016-6-6 20:53 | 显示全部楼层
Excel2007下getimage回调函数不可用,还没找到解决方法.

TA的精华主题

TA的得分主题

发表于 2016-6-11 15:53 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
大神,用你的方法已经测试成功。我把你的代码自己改了下,现在遇到了问题,test2我加载了一个窗体。
Public Sub test2(ByVal control As IRibbonControl)
    增加工作表.Show
End Sub
窗体我想实现,在TextBox输入内容,先判断表中存在是否重名,不重名则添加一个表,但是现在出现了问题,请大神帮助赐教,代码如下:
Dim ws As Worksheet
Dim jhao As String
jhao = 井号txt.Text
jhao = UCase(jhao)
On Error Resume Next
If jhao = "" Then
     MsgBox "请输入您要增加的工作表名!"
     Exit Sub
End If
For Each ws In Worksheets
    If ws.Name = jhao Then
     MsgBox "您输入的工作表已经存在,请重新输入!"
   Exit Sub
   End If
Next
Sheets.Add.Name = jhao
   Sheets(jhao).Move after:=Sheets(Sheets.Count)
Worksheets(1).Activate
End Sub

上面的代码执行到第二个if语句时,不管Textbox输入任何内容,都直接执行了MsgBox "您输入的工作表已经存在,请重新输入!"
包括后面增加工作表的代码也没有执行Sheets.Add.Name = jhao

TA的精华主题

TA的得分主题

发表于 2016-12-14 10:14 | 显示全部楼层
发现自定义的图标一直显示不出来,查不到相关资料,想不通,基于office 2007 powerpoint

test.zip

7.87 KB, 下载次数: 39

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-5-25 16:05 , Processed in 0.038970 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表