문제

누구든지 여러 Excel 문서에서 VBA 코드를 내보내는 방법을 알고 있으므로 코드를 전복 저장소에 추가 할 수 있습니까? 각 문서를 수동으로 열지 않고 코드를 내보내지 않아도됩니다.

도움이 되었습니까?

해결책

여기에서는이 도구를 찾을 수 있습니다.

http://www.pretentiousname.com/excel_extractvba/index.html

Excel을 자동화하는 VBS 스크립트입니다. 귀하의 요구에 따라 수정할 수 있습니다. 완벽하지 않다는 점에 유의하십시오 (경고 용 웹 페이지 읽기).

option explicit

Const vbext_ct_ClassModule = 2
Const vbext_ct_Document = 100
Const vbext_ct_MSForm = 3
Const vbext_ct_StdModule = 1

Main

Sub Main
    Dim xl
    Dim fs
    Dim WBook
    Dim VBComp
    Dim Sfx
    Dim ExportFolder

    If Wscript.Arguments.Count <> 1 Then
        MsgBox "As the only argument, give the FULL path to an XLS file to extract all the VBA from it."
    Else

        Set xl = CreateObject("Excel.Application")
        Set fs = CreateObject("Scripting.FileSystemObject")

        xl.Visible = true

        Set WBook = xl.Workbooks.Open(Trim(wScript.Arguments(0)))

        ExportFolder = WBook.Path & "\" & fs.GetBaseName(WBook.Name)

        fs.CreateFolder(ExportFolder)

        For Each VBComp In WBook.VBProject.VBComponents
            Select Case VBComp.Type
                Case vbext_ct_ClassModule, vbext_ct_Document
                    Sfx = ".cls"
                Case vbext_ct_MSForm
                    Sfx = ".frm"
                Case vbext_ct_StdModule
                    Sfx = ".bas"
                Case Else
                    Sfx = ""
            End Select
            If Sfx <> "" Then
                On Error Resume Next
                Err.Clear
                VBComp.Export ExportFolder & "\" & VBComp.Name & Sfx
                If Err.Number <> 0 Then
                    MsgBox "Failed to export " & ExportFolder & "\" & VBComp.Name & Sfx
                End If
                On Error Goto 0
            End If
        Next

        xl.Quit
    End If
End Sub

-아담

다른 팁

지난 몇 년 동안이 코드를 내보내고 저장하기 위해 이것을 성공적으로 사용했습니다. 사무실 2003, 2007에서 작동하는 것을 확인할 수 있습니다. 2000 년에도 작동한다고 가정합니다.

http://www.codeproject.com/kb/office/sourcetools.aspx

Excel VBA 개발을 많이 할 때 (상황에 맞는 메뉴에서) 변경을 할 때마다 각 파일 (모듈 등)에 대한 텍스트 형식으로 내보내는 습관을 들었습니다. XLA 바이너리와 함께 해당 파일을 소스 컨트롤에 보관했습니다. 이것은 나에게 잘 작동했으며 외부 도구가 필요하지 않았습니다.

Sourcetools는 일단 가동되면 좋지만, 많은 Excel 통합 문서에서 수출 해야하는 경우 각각을 열고 내보내는 것이 약간 지루할 수 있습니다.

VBADIFF (면책 조항 : 내 제품)에는 여러 Excel 파일을 읽고 VBA 코드를 추출 할 수있는 API가 있습니다. 예가 있습니다 여기 -Code를 파일로 내보낼 수 있도록 쉽게 조정할 수 있습니다. 체크인 할 준비가되었습니다. SharpSVN이 양호하면 코드를 리포지토리에 추가 할 수 있습니다!

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top