批量导出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就导出到了指定的文件夹了~

 

你可能感兴趣的:(source)