Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1100to1104
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA Quellcode + Versionsverwaltung

VBA Quellcode + Versionsverwaltung
Tobias
Hallo Forum,
ich muss nocheinmal totale Anfängerfragen stellen. Gibt es eine Möglichkeit den VBA Quellcode mit zbs. SVN so zu versionieren, dass man auch die Unterschiede zwischen dem Quellcode erkennen kann (Diff-Funktion) ? Anders ausgedrückt: ich würde gerne Quellcode plain Text zu speichern und nicht total Versteckt in den ExcelDateien die man nur mit Excel lesen kann. Aber natürlich nicht jetzt per Copy & Paste das ganze Zeug rausziehen.
Ich habe schon meine VBA Macros in eine XLA Datei ausgelagert, aber das hilft auch nicht.

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
VBA Export, Quellcode + Versionsverwaltung
10.09.2009 17:30:35
fcs
Hallo Tobias,
du kannst zum Beispiel alle Module eines VBA-Projekts in ein Verzeichnis exportieren. Diesen Exprot kann man automatisieren.
Dabei erzeugt Excel Dateien mit den Erweitereungen
bas - für algemeine Module
cls - für "DieseArbeitsmappe", Tabellen und Klassenmodule
frm - Code eines Userforms
frx - Aufbau eines Userform
Mit Ausnahme der frx-Dateien sind dies alles Text-Dateien, die zu Beginn ein paar Informationen zu dem zugehörigen Element enthalten und dann den Code wie du ihn im VBA-Editor siehst.
Im Datei-Explorer kannst du dann mit Senden an "Wordpad" oder einen anderen Editor die Dateien einsehen.
Mit diesen Dateien müsste dann ja auch dein Versionierungs-Tool funktionieren.
Die Nachfolgende Prozedur export alle Module des VBA-Projekts der aktiven Datei in ein Verzeichnis und erstellt auch einen Satzt Text-Dateien zum "nachschauen".
Gruß
Franz
'Prozedur erstellt unter Excel 2003
Sub Code_Export()
'Gesamten Code und Module der aktiven Datei exportieren
'Zur Ausführung der Prozedur muss:
'1. Im VBA-Editor unter Extras--> Verweise... _
der Verweis auf die _
Microsoft Visual Basic for Applications Extensibility x.x _
aktiviert werden
'2. In Excel unter Extras --> Optionen --> Sicherheit --> Makrosicherheit _
die Option "Zugriff auf das VB-Projekt vertrauen" aktiviert werden.
Dim myVBComponent As VBComponent, varFolderName, wbAktiv As Workbook
Dim strFile As String
On Error GoTo Fehler
If MsgBox("Sämtlichen VBA-Code der aktiven Mappe exportieren?", _
vbYesNo, "VBA-Code-Export") = vbYes Then
Set wbAktiv = ActiveWorkbook
'Verzeichnis auswählen für Export
With Application.FileDialog(msoFileDialogFolderPicker)
.AllowMultiSelect = False
.InitialView = msoFileDialogViewList
'Verzeichnis "C:\Lokale Daten\Test\" als Basis-Verzeichnis für Code- _
Dateien ggf. anpassen
strFile = "C:\Lokale Daten\Test\" & "Code_" & _
VBA.Replace(wbAktiv.Name, ".", "_")
If Dir(strFile, vbDirectory) = "" Then
VBA.MkDir strFile
End If
.InitialFileName = strFile & Application.PathSeparator
.Title = "Bitte den Ordner wählen, in dem das Unterverzeichnis " _
& "für Export angelegt werden soll"
If .Show  False Then
varFolderName = .SelectedItems(1)
'Unterverzeichnis für Dateien erstellen
varFolderName = varFolderName & Application.PathSeparator _
& Format(Now, "YYYYMMDD_hhmm")
VBA.MkDir Path:=varFolderName
'Unterverzeichnis für TXT-Dateien erstellen
VBA.MkDir Path:=varFolderName & Application.PathSeparator & "TXT"
Else
Exit Sub
End If
End With
With ActiveWorkbook.VBProject
For Each myVBComponent In .VBComponents
With myVBComponent
Select Case .Type
Case 1: strFile = .Name & ".bas" 'Allgemeines Modul
Case 2: strFile = .Name & ".cls" 'Klassenmodul
Case 3: strFile = .Name & ".frm" 'Userform
Case 100: strFile = .Name & ".cls" 'Tabelle oder DieseArbeitsmappe
End Select
'alle Module  exportieren
.Export FileName:=varFolderName & Application.PathSeparator & strFile
'Code der Module als TXT-Datei speichern
.Export FileName:=varFolderName & Application.PathSeparator & "TXT" _
& Application.PathSeparator & .Name & ".txt"
If .Type = 3 Then 'Userform
'Bei Userformen die erzeugte frx-Datei wieder löschen
strFile = varFolderName & Application.PathSeparator & "TXT" _
& Application.PathSeparator & .Name & ".frx"
Kill strFile
Else
End If
End With
Next
End With
End If
MsgBox "Fertig"
Fehler:
With Err
If .Number  0 Then
Select Case .Number
Case 1004
MsgBox "Fehler: " & .Number & vbLf & .Description & vbLf _
& "Vor Start des Makros unter Optionen ""Sicherheit --> " _
& "Makrosicherheit"" Option " _
& """Zugriff auf das VB-Projekt vertrauen"" aktivieren!"
Case Else
MsgBox "Fehler: " & .Number & vbLf & .Description
End Select
End If
End With
End Sub

Anzeige
AW: VBA Export, Quellcode + Versionsverwaltung
11.09.2009 12:37:22
Tobias
Vielen dank, dass ist schonmal ein super Anfang.

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige