'---------------------------------------------------------------------------------------
' Module : modFPVBADocumentator
' DateTime : 06.01.2008 22:23
' Author : Burkhard Schlutt
' Purpose : Modul zur komplexen Dokumentation des Frontpage-VBA-Codes
'---------------------------------------------------------------------------------------
Option Explicit
'Diese Konstante kann bei Auslieferung entfernt werden
'Verzeichnis wird automatisch ermittelt
'Const Arbeitsverzeichnis = "H:\Eigene Dateien\Burkhard\frontpage\Dokumentator\"
Const
HauptDatei = "Dokumentator.txt" 'Dokumentator-Hauptdatei
Const
Trennzeile = _
"---------------------------------------------------------------------------"
'---------------------------------------------------------------------------------------
' Procedure : Dokumentator
' DateTime : 06.01.2008 22:24
' Author : Burkhard Schlutt
' Purpose : Die Hauptfunktion des Frontpage-VBA-Dokumentators
'---------------------------------------------------------------------------------------
'
Sub
Dokumentator()
Dim
myapp As
Application
Dim
myVBE As
VBE
Dim
myVBProj As
VBProject
Dim
myComp As
VBComponent
Dim
myRef As Object
Dim
Pfad As String
Dim
langname As String
Pfad = Arbeitsverzeichnis
langname = Pfad & HauptDatei
Set
myapp = Application
Set
myVBE = myapp.VBE
Set
myVBProj = myVBE.ActiveVBProject
'Docomentator-Hauptdatei schreiben
'Basisinformationen
Open
langname For
Output As
#1
Print
#1, Trennzeile
Print
#1, "Dokumentation des VBE-Objektes aus Frontpage"
Print
#1, Trennzeile
Print
#1, Trennzeile
Print
#1, "Projektname" & vbTab & myVBE.ActiveVBProject.Name
Print
#1, "Speicherort" & vbTab & myVBProj.FileName
Print
#1, "Anzahl der Verweise" & vbTab & myVBProj.References.Count
Print
#1, "Anzahl der Komponenten" & vbTab & myVBE.CodePanes.Count
Print
#1, Trennzeile
Print
#1, Trennzeile
Print
#1, "Verweise (Name, Beschreibung, Datei)"
Print
#1, Trennzeile
'Referenzierte Dateien auflisten
For Each
myRef In
myVBProj.References
Print
#1, myRef.Name & vbTab & myRef.Description
Print
#1, myRef.FullPath
Print
#1, Trennzeile
Next
Print
#1, Trennzeile
Print
#1, Trennzeile
Print
#1, "Typ und Namen der Componenten, Anzahl der Zeilen"
Print
#1, Trennzeile
'Komponenten in Hauptdatei auflisten und als Datei speichern
For Each
myComp In
myVBProj.VBComponents
Select Case
myComp.Type
Case
1
Print
#1, myComp.Type; "Modul ", , myComp.Name, " Anzahl Zeilen: ", myComp.CodeModule.CountOfLines
Case
2
Print
#1, myComp.Type; "Klassenmodul", myComp.Name, " Anzahl Zeilen: ", myComp.CodeModule.CountOfLines
Case
3
Print
#1, myComp.Type; "Formular", , myComp.Name, " Anzahl Zeilen: ", myComp.CodeModule.CountOfLines
End Select
Select Case
myComp.Type
Case
1
myComp.Export (Pfad & myComp.Name & ".bas")
Case
2
myComp.Export (Pfad & myComp.Name & ".cls")
Case
3
myComp.Export (Pfad & myComp.Name & ".frm")
End Select
Call
Parse_Code2HTML(myComp.CodeModule, myComp.Name, Pfad & myComp.Name & ".htm")
Next
Print
#1, Trennzeile
Close
#1
End Sub
Function
Arbeitsverzeichnis()
Dim
myFSO As
FileSystemObject
Dim
Zielpfad As String Dim
text
As String Dim
tmpStr As String
'damit
Funktion nicht mehrfach aufgerufen werden muss
tmpStr = Ordner_Eigenedateien Zielpfad = tmpStr & "\Frontpage\Dokumentator\"
Set
myFSO = CreateObject("Scripting.FileSystemObject")
If
myFSO.FolderExists(Zielpfad) Then
' kein Code wenn existiert
' MsgBox "Das Verzeichnis" & vbCrLf & Zielpfad & vbCrLf &
"existiert bereits." _
' & vbCrLf & "Hier werden alle Daten des Dokumentators gespeichert"
Else If
myFSO.FolderExists(tmpStr & "\Frontpage")
Then
myFSO.CreateFolder (Zielpfad)
Else
myFSO.CreateFolder (tmpStr & "\Frontpage") myFSO.CreateFolder (Zielpfad)
End If
MsgBox "Das Verzeichnis" & vbCrLf & Zielpfad & vbCrLf & "wurde angelegt." &
_ vbCrLf & "Hier werden alle Daten des Dokumentators gespeichert"
End If
Arbeitsverzeichnis = Zielpfad
End Function