Excel VBA Code als Text exportieren

Zur Navigation springen Zur Suche springen

Dieses Unterprogramm exportiert den Programmcode einer Excel-Datei in ein Unterverzeichnis. Jeder Modul wird in eine eigene Textdatei geschrieben, bei umfangreicheren Arbeitsmappen mit vielen Worksheets kommen etliche Dateien zusammen.

Der Name des Unterverzeichnisses lautet ActiveWorkbook.Name & "-VBACode\"

VBA-Code

Public Sub ExportSourceFiles()
 
  Dim Component As Object
  Dim DestPath As String, myName As String
  Dim objFSO As Object
  Set objFSO = CreateObject("Scripting.FileSystemObject")
  myName = objFSO.GetBaseName(ActiveWorkbook.Name) ' Name der Arbeitsmappe ohne Erweiterung
  DestPath = ActiveWorkbook.Path & "\" & myName & "-VBACode\"
  If Not FolderDa(DestPath) Then
    MkDir DestPath
  End If
  For Each Component In Application.VBE.ActiveVBProject.VBComponents
    If Component.Type = 100 Or Component.Type = 1 Then
      Component.Export DestPath & Component.Name & ToFileExtension(Component.Type)
    End If
  Next
 
End Sub
 
Private Function ToFileExtension(vbeComponentType As Long) As String
  Select Case vbeComponentType
    Case 100 'vbext_ComponentType.vbext_ct_ClassModule
    ToFileExtension = "-cls.txt"
    Case 1 'vbext_ComponentType.vbext_ct_StdModule
    ToFileExtension = "-bas.txt"
    Case Else
    ToFileExtension = vbNullString
  End Select
 
End Function

Anmerkungen

Wenn die Fehlermeldung Der programmatische Zugriff auf das Visual Basic-Projekt ist nicht sicher beim Zugriff auf das VBA-Projekt Application.VBE.ActiveVBProject ausgegeben wird, dann muss man im Excel Einstellungen ändern: Programmatischer Zugriff auf das Office VBA-Projekt wird verweigert

Datei/Optionen/Trustcenter
auto
auto
Das Kästchen bei Zugriff auf das VBA-Projektobjektmodell aktivieren.
Dieses Programm benötigt das Unterprogramm FolderDa[1]

Links