'---------------------------------------------------------------------------------------
' 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