VBA-Code exportiert aus mehreren Dokumenten Excel in der Versionskontrolle setzen [geschlossen]

StackOverflow https://stackoverflow.com/questions/608872

Frage

Kennt jemand eine Möglichkeit, den VBA-Code aus einer Reihe von Excel-Dokumenten zu exportieren, so dass der Code in eine Subversion-Repository hinzugefügt werden? Ohne manuell jedes Dokument öffnen und den Code exportieren.

War es hilfreich?

Lösung

Sie werden ein Werkzeug hierfür finden Sie hier:

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

Es ist ein VBS-Skript, das Excel automatisiert. Sie können es ändern, um Ihre Bedürfnisse nach - beachten Sie, dass es nicht perfekt ist (die Webseite für Einsprüche lesen)

.
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

-Adam

Andere Tipps

Ich habe dies erfolgreich in den letzten paar Jahren meinen Code zu exportieren und speichern. Ich kann bestätigen, es in Office 2003 arbeitet, 2007. Ich nehme an, es im Jahr 2000 arbeitet auch.

http://www.codeproject.com/KB/office/SourceTools.aspx

Als ich eine Menge von Excel-VBA-Entwicklung zu tun bekam ich in die Gewohnheit, für jede Datei in das Textformat exportieren (Modul, usw.) jedes Mal, wenn ich eine Änderung vorgenommen (im Kontextmenü). Ich hielt diese Dateien in der Quellcodeverwaltung neben dem XLA binär. Dies war für mich ziemlich gut und erforderte keine externen Tools.

SourceTools ist gut, wenn Sie zum Laufen sind, aber wenn Sie aus einer großen Anzahl von Excel-Dateien zu exportieren sind, um das Öffnen jeden und exportieren es könnte ein bisschen langweilig sein.

VbaDiff (Disclaimer: mein Produkt) hat eine API, die über mehrere Excel-Dateien und extrahieren Sie die VBA-Code lesen kann. Es ist ein Beispiel für hier - es leicht angepasst werden könnte, exportieren der Code in einer Datei, bereit zu prüfen. Wenn Sie mit SharpSvn gut sind, haben Sie wahrscheinlich den Code in das Repository hinzufügen könnte, wie Sie gehen!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top