zoukankan      html  css  js  c++  java
  • 批量导出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就导出到了指定的文件夹了~

  • 相关阅读:
    Linux 管道 管线
    中国网络拓扑图(主干网、地区网、主节点一览表)
    C++中的STL中map用法详解
    Git 丢弃本地修改
    Linux下指定so动态库的加载路径的5种方法!!!
    C++中string append函数的使用与字符串拼接
    C++执行shell命令linux
    Linux动态库.so文件加载搜索路径详解
    FFmpeg打印日志函数分析
    linux C/C++中调用shell命令和运行shell脚本
  • 原文地址:https://www.cnblogs.com/yejg1212/p/3382833.html
Copyright © 2011-2022 走看看