批量导出VBA工程中的Source
在做Excel宏相关项目的开发和维护过程中,我们经常需要导出VBA中的Source,但是Excel提供的宏编辑器中只能一个文件一个文件地导出,很不方便。
下面介绍2种批量导出的方法:
1.SourceTools 小插件
主要功能如下:
1.导入导出source
2.根据版本比较source(需要winmerge)
3.集成SVN(需要tortoiseSVN)
参考: http://www.codeproject.com/Articles/18029/SourceTools-xla
但是这个工具有个致命的缺点-----安装之后,导出用的工具栏按钮经常不出现。
(反正安装之后,导出按钮不出现的概率挺高的,不然我也不会去寻找下面一个方法,^_^)
2.自定义脚本
这个方法需要在VBA工程中新建一个Module,然后加入如下代码:
Sub exportVBSourceTool() Dim ExportPath As String, ExtendName As String Dim vbc As VBComponent Dim i% 'ExportPath = ThisWorkbook.Path ’使用这个目录的话,就会直接导出到宏所在的目录 ExportPath = "C:\export_VBASource" 'make sure the directory is exist before run For Each vbc In Application.VBE.ActiveVBProject.VBComponents 'get module code line count i = ThisWorkbook.VBProject.VBComponents(vbc.Name).CodeModule.CountOfLines 'if code count>=1,export 'else skip If i >= 1 Then Select Case vbc.Type Case vbext_ct_ClassModule, vbext_ct_Document 'class module,excel object ExtendName = ".Cls" 'set extension name Case vbext_ct_MSForm 'form ExtendName = ".frm" Case vbext_ct_StdModule 'module ExtendName = ".Bas" End Select If ExtendName <> "" Then vbc.Export ExportPath & "\" & vbc.Name & ExtendName End If End If Next End Sub
运行之前,还要做如下2件事情:
①引用Microsoft Visual Basic for Application Extensibility 5.3
VBA宏编辑器中,依次点击如下菜单:
工具 --> 参照設定 --> 在弹出的对话框中勾选“Microsoft Visual Basic for Application Extensibility 5.3” --> Click OK Button
②选择信任对VBA工程访问
Excel中,依次点击如下菜单:
工具 --> 宏 --> 宏安全 --> 信任对VBA工程对象模型的访问
设置好之后,运行就可以了,Source就导出到了指定的文件夹了~
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端