楼主 hlxz |
本作品 是一个初学 excel 与dll 链接的 很好的范例不过我的excel2009版本 将会在excel没有任何代码了纪念我这个绝版 dll与excel 案例和大家 分享部分代码 和范例下载本案例主要是做菜单当然案例中有 很多新功能dll 内代码 - Private Sub Cd_小爪Excel2008()
- On Error Resume Next
- Dim EB
- Set EB = GetObject(, "Excel.application")
- Dim myNewBar As CommandBar
- Dim AAAA As New MZCK
- Dim HH_LL1 As String
- HH_LL1 = AAAA.HH_LL
- If HH_LL1 <> "YIPINMEI" Then MsgBox "您已超过本文件使用期限2!请联系作者!", 64, "系统提示": Set EB = Nothing: Exit Sub
- EB.CommandBars("小爪Excel2008").Delete
- EB.CommandBars("Cell").Reset
- Set myNewBar = EB.CommandBars.Add _
- (Name:="小爪Excel2008", Position:=msoBarTop, MenuBar:=True)
- EB.MenuBars("小爪Excel2008").Menus.Add Caption:="格式" '一级菜单
- EB.MenuBars("小爪Excel2008").Menus("格式").MenuItems.AddMenu Caption:="显示" '二级菜单
- EB.MenuBars("小爪Excel2008").Menus("格式").MenuItems("显示").MenuItems.Add Caption:="区域文本上标", OnAction:="An_上标" '三级菜单
- EB.MenuBars("小爪Excel2008").Menus("格式").MenuItems("显示").MenuItems.Add Caption:="区域文本取消上标", OnAction:="An_取消上标" '三级菜单
- EB.MenuBars("小爪Excel2008").Menus("格式").MenuItems("显示").MenuItems.Add Caption:="区域水平左垂直中", OnAction:="An_水平左垂直中" '三级菜单
- EB.MenuBars("小爪Excel2008").Menus("格式").MenuItems("显示").MenuItems.Add Caption:="区域水平中垂直中", OnAction:="An_水平中垂直中" '三级菜单
- EB.MenuBars("小爪Excel2008").Menus("格式").MenuItems("显示").MenuItems.Add Caption:="区域水平右垂直中", OnAction:="An_水平右垂直中" '三级菜单
- EB.MenuBars("小爪Excel2008").Menus("格式").MenuItems("显示").MenuItems.Add Caption:="区域粗框细表格线", OnAction:="An_粗框细格线" '三级菜单
- EB.MenuBars("小爪Excel2008").Menus("格式").MenuItems("显示").MenuItems.Add Caption:="区域细框细表格线", OnAction:="An_细框细格线" '三级菜单
- EB.MenuBars("小爪Excel2008").Menus("格式").MenuItems("显示").MenuItems.Add Caption:="区域文本自动换行", OnAction:="An_自动换行"
|
2楼 hlxz |
- '-----------------------函数
- EB.MenuBars("小爪Excel2008").Menus.Add Caption:="函数" '一级菜单
- EB.MenuBars("小爪Excel2008").Menus("函数").MenuItems.AddMenu Caption:="文本函数" '二级菜单
- EB.MenuBars("小爪Excel2008").Menus("函数").MenuItems("文本函数").MenuItems.Add Caption:="My提取公式", OnAction:="bzMy提取公式"
- EB.MenuBars("小爪Excel2008").Menus("函数").MenuItems("文本函数").MenuItems.Add Caption:="My提取数字", OnAction:="bzMy提取数字"
- EB.MenuBars("小爪Excel2008").Menus("函数").MenuItems("文本函数").MenuItems.Add Caption:="My提取汉字", OnAction:="bzMy提取汉字"
- EB.MenuBars("小爪Excel2008").Menus("函数").MenuItems("文本函数").MenuItems.Add Caption:="My提取字母", OnAction:="bzMy提取字母"
- EB.MenuBars("小爪Excel2008").Menus("函数").MenuItems("文本函数").MenuItems.Add Caption:="My提取本工作表名", OnAction:="bzMy提取本工作表名"
- EB.MenuBars("小爪Excel2008").Menus("函数").MenuItems("文本函数").MenuItems.Add Caption:="My计算单元格字符出现次数", OnAction:="bzMy计算单元格字符出现次数"
- EB.MenuBars("小爪Excel2008").Menus("函数").MenuItems("文本函数").MenuItems.Add Caption:="My提取文本内算式", OnAction:="bzMy提取文本内算式"
- EB.MenuBars("小爪Excel2008").Menus("函数").MenuItems("文本函数").MenuItems.Add Caption:="My字符反向", OnAction:="bzMy字符反向"
- EB.MenuBars("小爪Excel2008").Menus("函数").MenuItems("文本函数").MenuItems.Add Caption:="My分割字符", OnAction:="bzMy分割字符"
- EB.MenuBars("小爪Excel2008").Menus("函数").MenuItems.AddMenu Caption:="求和函数" '二级菜单
- EB.MenuBars("小爪Excel2008").Menus("函数").MenuItems("求和函数").MenuItems.Add Caption:="My可见单元格求和", OnAction:="bzMy可见单元格求和"
- EB.MenuBars("小爪Excel2008").Menus("函数").MenuItems("求和函数").MenuItems.Add Caption:="My同色字体求和", OnAction:="bzMy同色字体求和"
- EB.MenuBars("小爪Excel2008").Menus("函数").MenuItems("求和函数").MenuItems.Add Caption:="My同背景色求和", OnAction:="bzMy同背景色求和"
|
3楼 hlxz |
- EB.MenuBars("小爪Excel2008").Menus("函数").MenuItems.AddMenu Caption:="查找函数" '二级菜单
- EB.MenuBars("小爪Excel2008").Menus("函数").MenuItems("查找函数").MenuItems.Add Caption:="My超级查找", OnAction:="bzMy超级查找"
- EB.MenuBars("小爪Excel2008").Menus("函数").MenuItems("查找函数").MenuItems.Add Caption:="My超级分列", OnAction:="bzMy超级分列"
- EB.MenuBars("小爪Excel2008").Menus("函数").MenuItems("查找函数").MenuItems.Add Caption:="My超级字符连接", OnAction:="bzMy超级字符连接"
- EB.MenuBars("小爪Excel2008").Menus("函数").MenuItems("查找函数").MenuItems.Add Caption:="My不重复值", OnAction:="bzMy不重复值"
- EB.MenuBars("小爪Excel2008").Menus("函数").MenuItems.AddMenu Caption:="时间日期函数" '二级菜单
- EB.MenuBars("小爪Excel2008").Menus("函数").MenuItems("时间日期函数").MenuItems.Add Caption:="My计算时差", OnAction:="bzMy计算时差"
- EB.MenuBars("小爪Excel2008").Menus("函数").MenuItems("时间日期函数").MenuItems.Add Caption:="My宾馆住宿计算", OnAction:="bzMy宾馆住宿计算"
- EB.MenuBars("小爪Excel2008").Menus("函数").MenuItems("时间日期函数").MenuItems.Add Caption:="My工作时和", OnAction:="bzMy计工作时和"
- EB.MenuBars("小爪Excel2008").Menus("函数").MenuItems.AddMenu Caption:="转换函数" '二级菜单
- EB.MenuBars("小爪Excel2008").Menus("函数").MenuItems("转换函数").MenuItems.Add Caption:="My汉字转拼音", OnAction:="bzMy汉字转拼音"
- EB.MenuBars("小爪Excel2008").Menus("函数").MenuItems("转换函数").MenuItems.Add Caption:="My数字转英文", OnAction:="bzMy数字转英文"
- EB.MenuBars("小爪Excel2008").Menus("函数").MenuItems("转换函数").MenuItems.Add Caption:="My人民币", OnAction:="bzMy人民币"
- '-----------------------操作
- EB.MenuBars("小爪Excel2008").Menus.Add Caption:="操作" '一级菜单
- EB.MenuBars("小爪Excel2008").Menus("操作").MenuItems.Add Caption:="操作按钮工具", OnAction:="Cd_操作按钮工具菜单"
- EB.MenuBars("小爪Excel2008").Menus("操作").MenuItems.Add Caption:="背景工具", OnAction:="Cd_背景窗体"
- EB.MenuBars("小爪Excel2008").Menus("操作").MenuItems.Add Caption:="提示输入工具", OnAction:="Cd_提示窗体"
- EB.MenuBars("小爪Excel2008").Menus("操作").MenuItems.Add Caption:="生成工资条", OnAction:="Cd_生成工资条"
- '-----------------------实用工具
- EB.MenuBars("小爪Excel2008").Menus.Add Caption:="实用工具" '一级菜单
- EB.MenuBars("小爪Excel2008").Menus("实用工具").MenuItems.Add Caption:="破解Excel工作表密码", OnAction:="Xz_解除工作表保护"
- EB.MenuBars("小爪Excel2008").Menus("实用工具").MenuItems.Add Caption:="破解Excelvba密码", OnAction:="Xz_破解VBA密码"
|
4楼 hlxz |
Call Cd_门窗开发程序
- EB.MenuBars("小爪Excel2008").Menus.Add Caption:="帮助" '一级菜单
- EB.MenuBars("小爪Excel2008").Menus("帮助").MenuItems.Add Caption:="工作表操作帮助", OnAction:="EX_工作表操作帮助"
- EB.MenuBars("小爪Excel2008").Menus("帮助").MenuItems.Add Caption:="ExcelVBA帮助", OnAction:="EX_ExcelVBA帮助"
- EB.MenuBars("小爪Excel2008").Menus("帮助").MenuItems.Add Caption:="Visual Basic帮助", OnAction:="EX_Visual_Basic帮助"
- EB.MenuBars("小爪Excel2008").Menus("帮助").MenuItems.Add Caption:="欢乐小爪社区", OnAction:="Cd_欢乐小爪社区"
- EB.MenuBars("小爪Excel2008").Menus("帮助").MenuItems.Add Caption:="欢乐小爪博客", OnAction:="Cd_欢乐小爪博客"
- EB.MenuBars("小爪Excel2008").Menus("帮助").MenuItems.Add Caption:="关于小爪Excel2008", OnAction:="Cd_关于小爪Excel2008"
- EB.MenuBars("小爪Excel2008").Menus("帮助").MenuItems.Add Caption:="注册本产品", OnAction:="Cd_注册窗体"
- '------------------------EXCEL2003菜单
- EB.MenuBars("小爪Excel2008").Menus.Add Caption:="EXCEL2003菜单" '一级菜单
- EB.MenuBars("小爪Excel2008").Menus("EXCEL2003菜单").MenuItems.Add Caption:="EXCEL2003菜单", OnAction:="Cd_EXCEL2003菜单"
- EB.MenuBars("小爪Excel2008").Activate
- End Sub
|
5楼 apolloh |
谢谢小爪,俺学习一下。
|
6楼 水星钓鱼 |
MM发帖内容语言都与众不同,哈哈 |
7楼 wshcw |
谢谢分享,下载学习. |
8楼 hlxz |
昨天的网速太不好,传了一个小时 才传了一点 现在继续,只是这么快就有人回复了 |
9楼 hlxz |
- Private Sub Cd_EXCEL2003菜单()
- On Error Resume Next
- Dim EB
- Set EB = GetObject(, "Excel.application")
- EB.ScreenUpdating = False
- EB.CommandBars("欢乐小爪小工具").Delete
- EB.MenuBars(xlWorksheet).Menus("小爪Excel2008").Delete
- EB.CommandBars("cell").Reset
- EB.CommandBars("Status Bar").Visible = True
- EB.CommandBars(1).Visible = True
- EB.CommandBars(3).Visible = True
- EB.CommandBars(4).Visible = True
- EB.CommandBars("Visual Basic").Visible = True
- With EB.MenuBars(xlWorksheet).Menus.Add(Caption:="小爪Excel2008")
- .MenuItems.Add Caption:="小爪Excel2008", OnAction:="Cd_小爪Excel2008"
- End With
- EB.ScreenUpdating = True
- End Sub
- ' *************************************************
- Private Sub Cd_欢乐小爪社区()
- Shell "explorer http://huanlexiaozhua.5d6d.com"
- End Sub
- Private Sub Cd_欢乐小爪博客()
- Shell "explorer http://hi.baidu.com/huanhuanxiaozhua/blog"
- End Sub
- Private Sub Cd_操作按钮工具菜单()
- On Error Resume Next
- Dim EB
- Dim 欢乐小爪小工具 As CommandBar
- Dim 子菜单 As CommandBarControl
- Dim HH_LL1 As String
- Dim AAAA As New MZCK
- HH_LL1 = AAAA.HH_LL
- If HH_LL1 <> "*******" Then MsgBox "非法用户,限制使用": Exit Sub
- Set EB = GetObject(, "Excel.application")
- EB.CommandBars("欢乐小爪小工具").Delete '删除已有菜单
- Set 欢乐小爪小工具 = EB.CommandBars.Add '添加新菜单
- With 欢乐小爪小工具
- .Visible = True '属性值(TRUE为显示)
- .Position = msoBarTop '将此菜单显示在顶部
- .Name = "欢乐小爪小工具"
- End With
- '=============================================
- Set 子菜单 = EB.CommandBars("欢乐小爪小工具").Controls.Add(Type:=msoControlButton) '添加新按钮
- With 子菜单
- .Caption = "最佳列宽"
- .OnAction = "An_改善列宽"
- .FaceId = 7008
- .Visible = True
- End With
- Set 子菜单 = EB.CommandBars("欢乐小爪小工具").Controls.Add(Type:=msoControlButton) '添加新按钮
- With 子菜单
- .Caption = "减少列宽"
- .OnAction = "An_减少列宽"
- .FaceId = 6282
- .Visible = True
- End With
- Set 子菜单 = EB.CommandBars("欢乐小爪小工具").Controls.Add(Type:=msoControlButton) '添加新按钮
- With 子菜单
- .Caption = "增加列宽"
- .OnAction = "An_增加列宽"
- .FaceId = 6286
- .Visible = True
- End With
- Set 子菜单 = EB.CommandBars("欢乐小爪小工具").Controls.Add(Type:=msoControlButton) '添加新按钮
- With 子菜单
- .Caption = "最佳行高"
- .OnAction = "An_最佳行高"
- .FaceId = 7009
- .Visible = True
- End With
- Set 子菜单 = EB.CommandBars("欢乐小爪小工具").Controls.Add(Type:=msoControlButton) '添加新按钮
- With 子菜单
- .Caption = "增加行高"
- .OnAction = "An_增加行高"
- .FaceId = 6292
- .Visible = True
- End With
- Set 子菜单 = EB.CommandBars("欢乐小爪小工具").Controls.Add(Type:=msoControlButton) '添加新按钮
- With 子菜单
- .Caption = "减少行高"
- .OnAction = "An_减少行高"
- .FaceId = 6288
- .Visible = True
- End With
- Set 子菜单 = EB.CommandBars("欢乐小爪小工具").Controls.Add(Type:=msoControlButton) '添加新按钮
- With 子菜单
- .Caption = "√"
- .OnAction = "An_打勾"
- .FaceId = 1087
- .Visible = True
- End With
- Set 子菜单 = EB.CommandBars("欢乐小爪小工具").Controls.Add(Type:=msoControlButton) '添加新按钮
- With 子菜单
- .Caption = "×"
- .OnAction = "An_打叉"
- .FaceId = 6503
- .Visible = True
- End With
-
- End Sub
|
10楼 hlxz |
以上 是dll 部分代码 至于加密部分代码 我就不和大家分享了,
以下是 excel内 接口的代码
- Private Sub Workbook_Open()
- Application.Visible = True
- On Error GoTo errline
- Shell "Regsvr32 /s " & Chr(34) & ThisWorkbook.Path & "\ExcelCD.dll" & Chr(34), vbHide
- Cd_EXCEL2003菜单
- errline:
- End Sub
- Private Sub Cd_小爪Excel2008()
- On Error Resume Next
- Dim ABCD As New MCDK: Call ABCD.Cd_菜单("Cd_小爪Excel2008"): Set ABCD = Nothing
- End Sub
- Sub Cd_EXCEL2003菜单()
- On Error Resume Next
- Dim ABCD As New MCDK: Call ABCD.Cd_菜单("Cd_EXCEL2003菜单"): Set ABCD = Nothing
- End Sub
- Private Sub Cd_操作按钮工具菜单()
- On Error Resume Next
- Dim ABCD As New MCDK: Call ABCD.Cd_菜单("Cd_操作按钮工具菜单"): Set ABCD = Nothing
- End Sub
- Private Sub Cd_欢乐小爪社区()
- On Error Resume Next
- Dim ABCD As New MCDK: Call ABCD.Cd_菜单("Cd_欢乐小爪社区"): Set ABCD = Nothing
- End Sub
- Private Sub Cd_欢乐小爪博客()
- On Error Resume Next
- Dim ABCD As New MCDK: Call ABCD.Cd_菜单("Cd_欢乐小爪博客"): Set ABCD = Nothing
- End Sub
- Private Sub An_改善列宽()
- On Error Resume Next
- Dim ABCD As New MANK: Call ABCD.An_按钮菜单("An_改善列宽"): Set ABCD = Nothing
- End Sub
- Private Sub An_减少列宽()
- On Error Resume Next
- Dim ABCD As New MANK: Call ABCD.An_按钮菜单("An_减少列宽"): Set ABCD = Nothing
- End Sub
- Private Sub An_增加列宽()
- On Error Resume Next
- Dim ABCD As New MANK: Call ABCD.An_按钮菜单("An_增加列宽"): Set ABCD = Nothing
- End Sub
- Private Sub An_最佳行高()
- On Error Resume Next
- Dim ABCD As New MANK: Call ABCD.An_按钮菜单("An_最佳行高"): Set ABCD = Nothing
- End Sub
- Private Sub An_减少行高()
- On Error Resume Next
- Dim ABCD As New MANK: Call ABCD.An_按钮菜单("An_减少行高"): Set ABCD = Nothing
- End Sub
- Private Sub An_打勾()
- On Error Resume Next
- Dim ABCD As New MANK: Call ABCD.An_按钮菜单("An_打勾"): Set ABCD = Nothing
- End Sub
- Private Sub An_打叉()
- On Error Resume Next
- Dim ABCD As New MANK: Call ABCD.An_按钮菜单("An_打叉"): Set ABCD = Nothing
- End Sub
- Private Sub An_增加行高()
- On Error Resume Next
- Dim ABCD As New MANK: Call ABCD.An_按钮菜单("An_增加行高"): Set ABCD = Nothing
- End Sub
- Private Sub An_水平中垂直中()
- On Error Resume Next
- Dim ABCD As New MANK: Call ABCD.An_按钮菜单("An_水平中垂直中"): Set ABCD = Nothing
- End Sub
|
11楼 hlxz |
下载文件: 试着在这里 传过 传不上 文件太大 1.可以到我的QQ空间下载 ,上面有 应用的动画演示 2.可以加入 excel小爪菜单应用群 42278560
|
12楼 罗刚君 |
excel2009版本? 未来战士? |
13楼 gouweicao78 |
[EM08] 俺不懂VBA,就先收藏吧。 |
14楼 msxpvista7 |
虽然看不懂,但是很佩服楼主。 |
15楼 opelwang |
有点复杂,不过还是支持一下了。。 |
16楼 tongliaozyr |
虽然看不懂,但是很佩服楼主。 |
17楼 tongliaozyr |
谢谢 |
18楼 sendsend |
你的QQ是多少啊? |
19楼 wangqilong1980 |
无论如何也要顶一下喽,收了好好用。 |
20楼 hahaboy86 |
学习了~~~ |
21楼 wqfzqgk |
还是用类简化一下吧,是不是有点繁琐 |