VBA Tipp: Alle Funktionen und Subs in einem Modul ermitteln
Aus DBWiki
Aufgabenstellung
Ich möchte die Namen der Funktionen und Subs in einem Modul herausfinden.
Lösung
Die folgende Funktion gibt beispielhaft eine Liste der Funktionsnamen im Testfenster aus. (Zum Thema "Split-Funktion unter Access 97" siehe: Access 2000 String-Funktionen in Access 97 nutzen):
Public Function ListAllFunctionsInModule(Mdl As Module) Dim Lin As String, w, I As Long, J As Long For I = 1 To Mdl.CountOfLines Lin = Mdl.Lines(I, 1) If Lin <> "" Then w = Split(Lin, " ") If w(0) = "Public" Or w(0) = "Private" Then For J = 0 To UBound(w) - 1 w(J) = w(J + 1) Next J End If If w(0) = "Sub" Or w(0) = "Function" Then _ Debug.Print Mdl.Name, Mid(w(1), 1, InStr(w(1), "(") - 1) End If Next I End Function
Aufruf
Public Function AlleMeineFunktionen() Dim Mdl As Module, Frm As Form, Doc As DAO.Document, _ DB As DAO.Database, Cont As DAO.Container For Each Mdl In Modules ListAllFunctionsInModule Mdl Next Mdl Set DB = CurrentDb Set Cont = DB.Containers!Forms For Each Doc In Cont.Documents DoCmd.OpenForm Doc.Name, acDesign, , , , acHidden Set Frm = Forms(Doc.Name) ListAllFunctionsInModule Frm.Module DoCmd.Close acForm, Doc.Name, acSaveNo Next Doc Set DB = Nothing End Function