![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Alle VBA-Module exportieren |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
|||||||||||||||||||||
![]() |
|
![]() |
Ausgehend von dem Beispiel
Zur Ermittlung werden nacheinander alle Projekte (VBProjects-Einträge) durchlaufen. Diese entsprechen den obersten Einträgen im Projekt-Explorer der IDE und stellen alle geöffneten und geladenen Dokumente, Vorlagen und Add-Ins dar. Damit beim Export die korrekte Dateiendung verwendet wird, ist die Typ-Berücksichtigung des jeweiligen Moduls notwendig, da die Dateieindung nicht automatisch gesetzt wird. Update-Informationen: ' Damit auf die Projekte und Module zugegriffen werden kann, ' muss in der IDE ein Verweis (Extras/Verweise) auf die ' "Microsoft Visual Basic for Applications Extensibility 5.3" ' gesetzt sein! Sub ExportMacros() Dim myProject As VBProject Dim myComponent As VBComponent Dim strFile() As String Dim strOrdner As String Dim strNames As String Dim strProj As String , strProjOrdner As String Dim strMSG As String ' Ordner auswählen strOrdner = GetFolderInternal("Ordner auswählen", "C:\") ' Alle Projekte durchlaufen For Each myProject In VBE.VBProjects ' Nur ungeschützte berücksichtigen If myProject.Protection = vbext_pp_none Then On Error Resume Next If myProject.VBComponents.Count > 1 Then strFile() = Split (myProject.FileName, "\") strNames = strFile(UBound(strFile())) strNames = Replace (strNames, ".dot", "") If Len (Dir (strOrdner & "\" & strNames, vbDirectory ))= 0 Then MkDir strOrdner & "\" & strNames End If strProjOrdner = strOrdner & "\" & strNames On Error GoTo 0 ' Alle Module durchlaufen strProj = "" For Each myComponent In myProject.VBComponents With myComponent strProj = strProj & .Name & vbCr ' Modul-Typ ermitteln und mit richtiger Endung exportieren If .Type = vbext_ct_StdModule Then .Export strOrdner & "\" & strNames & "\" & .Name & ".bas" ElseIf .Type = vbext_ct_ClassModule Then .Export strOrdner & "\" & strNames & "\" & .Name & ".cls" ElseIf .Type = vbext_ct_MSForm Then .Export strOrdner & "\" & strNames & "\" & .Name & ".frm" ElseIf .Type = vbext_ct_Document Then .Export strOrdner & "\" & strNames & "\" & .Name & ".cls" End If End With Next myComponent strMSG = strMSG & strProjOrdner & ":" & vbCrLf & strProj & vbCrLf End If End If Next myProject MsgBox "Es wurden alle Module aus folgenden Vorlagen exportiert: " & vbCrLf & strMSG, _ vbInformation , "Module exportieren" End Sub Zur besseren Identifizierung wird dem Modulnamen noch der Vorlagenname angehängt. Wichtig: Microsoft Visual Basic for Applications Extensibility 5.3
gesetzt sein! |
![]() |
![]() |
Besucher: 0 online | 0 heute | 0 diesen Monat | 2282308 insgesamt | Seitenaufrufe: 142 | ![]() |
Letzte Änderung: 24.06.2006 | ![]() |
© 2001-18 Christian Freßdorf | ![]() |
Das Leben ist weder einfach noch verzwickt, weder klar noch dunkel, weder widerspruchsvoll noch zusammenhängend. Das Leben ist. Die Sprache allein ordnet oder verwirrt es, erhellt oder verdunklet es, zerstreut oder vereinigt es. Antoine de Saint-Exupéry |
powered by phpCMS and PAX |