ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[原创] 用VB给VBA开发外接程序(很难得见的资料,网找不到,自己写了一个,分享一下)

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2014-1-19 10:34 | 显示全部楼层 |阅读模式
本帖已被收录到知识树中,索引项:开发帮助和教程
本帖最后由 seeyoutime 于 2014-1-19 11:28 编辑

用VB给VBA开发外接程序(很难得见的资料,网找不到,自己写了一个,分享一下)
此方法可以开发类似工具:
1.VBA代码排版工具Smart Indenter V3.5)(Indent2K代码格式化工具
2.VBA界的小规模杀伤性武器:代码百宝箱2.0(永久免费)----罗刚君

希望高手接力开发,写出更多给VBA使用的辅助工具。

VBA Dll.zip (20.35 KB, 下载次数: 743) 最简实现菜单的源码,这个工程引用的是office2010的dll,如你装的是office2007,2003,需要重新指定相引的版本。

用VB给VBA开发外接程序.zip (697.05 KB, 下载次数: 1383) 带图的教材

本站首发

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-1-19 10:38 | 显示全部楼层
用VB给VBA开发外接程序


日期:2014-01-10


打开VB






关闭这个VB工程





用记事本打开Connect 文件,找到以下5段设置
   AppName         =   "Visual Basic"
   AppVer          =   "Visual Basic 6.0"
   LoadName        =   "Startup"
   LoadBehavior    =   1
   RegLocation     =   "HKEY_CURRENT_USER\Software\Microsoft\Visual Basic\6.0"
修改为:
   AppName         =   "Visual Basic for Applications IDE"
   AppVer          =   "6.0"
   LoadName        =   "Startup"
   LoadBehavior    =   1
   RegLocation     =   "HKEY_CURRENT_USER\Software\Microsoft\VBA\VBE\6.0"

实例:
(未修改的代码)
VERSION 5.00
Begin {AC0714F6-3D04-11D1-AE7D-00A0C90F26F4} dMouseWheel
   ClientHeight    =   8355
   ClientLeft      =   1740
   ClientTop       =   1545
   ClientWidth     =   16185
   _ExtentX        =   28549
   _ExtentY        =   14737
   _Version        =   393216
   Description     =   "VBA Tool"
   DisplayName     =   "VBA Tool"
   AppName         =   "Visual Basic"
   AppVer          =   "Visual Basic 6.0"
   LoadName        =   "Startup"
   LoadBehavior    =   1
   RegLocation     =   "HKEY_CURRENT_USER\Software\Microsoft\Visual Basic\6.0"
   CmdLineSupport  =   -1  'True
End
Attribute VB_Name = "dMouseWheel"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = True

(修改后的代码)
VERSION 5.00
Begin {AC0714F6-3D04-11D1-AE7D-00A0C90F26F4} dMouseWheel
   ClientHeight    =   7650
   ClientLeft      =   1740
   ClientTop       =   1545
   ClientWidth     =   9975
   _ExtentX        =   17595
   _ExtentY        =   13494
   _Version        =   393216
   Description     =   "VBA Tool"
   DisplayName     =   "VBA Tool"
   AppName         =   "Visual Basic for Applications IDE"
   AppVer          =   "6.0"
   LoadName        =   "Startup"
   LoadBehavior    =   1
   RegLocation     =   "HKEY_CURRENT_USER\Software\Microsoft\VBA\VBE\6.0"
End
Attribute VB_Name = "dMouseWheel"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = True


修改后重新打开这个VB工程



工程〉引用〉取消Microsoft Visual Basic 6.0 Extensibility 这个VB的引用


换成VBA的引用 Microsoft Visual Basic for Applications Extensibility


OK 再 文件〉生成 MyAddIn.dll这个DLL文件
最后在Excel VBA 中 工具〉引用〉浏览 找到MyAddIn.dll这个文件,引用它


外接程序〉My AddIn


成功


TA的精华主题

TA的得分主题

发表于 2014-1-20 15:22 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-1-22 21:20 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
wqfzqgk 发表于 2014-1-20 15:22
有些地方得改一下才可以

请指正了。。。

TA的精华主题

TA的得分主题

发表于 2014-1-23 07:29 | 显示全部楼层
当然可以调用,不过VB也可以直接出现做一个,以前论坛上发过一个

TA的精华主题

TA的得分主题

发表于 2014-1-23 09:29 | 显示全部楼层
菜鸟求教:在VBE下使用外界程序一般有什么作用或意义?

TA的精华主题

TA的得分主题

发表于 2014-1-23 09:42 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-1-26 22:53 | 显示全部楼层
土司空 发表于 2014-1-23 09:29
菜鸟求教:在VBE下使用外界程序一般有什么作用或意义?

VBE 不是很完善,不足够人性化,又更新慢。给VBE开发外接程序,就是为了方便高效开发,差不多的意思就是给VBE打补丁。给VBE开发外接程序的都是辛苦不赚钱的好同学。

TA的精华主题

TA的得分主题

发表于 2014-1-26 23:59 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2014-1-27 07:51 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

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

GMT+8, 2024-4-25 13:17 , Processed in 0.042448 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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