Erstellen einer Liste von Makros (Microsoft Excel)
Sobald Sie mit dem Schreiben von Excel-Makros beginnen, ist es einfach, einige davon in eine Arbeitsmappe aufzunehmen. Irgendwann möchten Sie möglicherweise eine Liste von Makros in Ihrer Arbeitsmappe erstellen. In Excel gibt es keine Möglichkeit, eine Liste von Makros zu erstellen. Sie können jedoch ein Makro erstellen, in dem Ihre Makros aufgelistet sind. (Klingt überflüssig, nicht wahr?)
Betrachten Sie als Beispiel das folgende Makro, das alle Projekte in Ihrer Arbeitsmappe durchläuft, um alle Makronamen zu sammeln und in ein Arbeitsblatt einzufügen:
Sub ListMacros() Dim VBComp As VBComponent Dim VBCodeMod As CodeModule Dim oListsheet As Object Dim StartLine As Long Dim ProcName As String Dim iCount As Integer Application.ScreenUpdating = False On Error Resume Next Set oListsheet = ActiveWorkbook.Worksheets.Add iCount = 1 oListsheet.[a1] = "Macro" For Each VBComp In ThisWorkbook.VBProject.VBComponents Set VBCodeMod = ThisWorkbook.VBProject.VBComponents(VBComp.Name).CodeModule With VBCodeMod StartLine = .CountOfDeclarationLines + 1 Do Until StartLine >= .CountOfLines oListsheet.[a1].Offset(iCount, 0).Value = _ .ProcOfLine(StartLine, vbext_pk_Proc) iCount = iCount + 1 StartLine = StartLine + _ .ProcCountLines(.ProcOfLine(StartLine, _ vbext_pk_Proc), vbext_pk_Proc) Loop End With Set VBCodeMod = Nothing Next VBComp Application.ScreenUpdating = True End Sub
Um dieses Makro verwenden zu können, müssen Sie sicherstellen, dass Sie über den Microsoft VBA-Erweiterungsreferenzsatz verfügen. Gehen Sie dazu folgendermaßen vor:
-
Wählen Sie im VBA-Editor im Menü Extras die Option Referenzen. Das Dialogfeld Referenzen wird angezeigt. (Siehe Abbildung 1.)
-
Scrollen Sie durch die Liste der verfügbaren Referenzen und stellen Sie sicher, dass das Kontrollkästchen Erweiterbarkeit von Microsoft Visual Basic für Applikationen aktiviert ist.
-
Schließen Sie das Dialogfeld.
Wenn Sie das Makro ausführen, fügt es Ihrer Arbeitsmappe ein neues Arbeitsblatt hinzu und listet dann die Namen aller Makros in allen Modulen in der Arbeitsmappe auf.
_Hinweis: _
Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der ExcelTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.
ExcelTips ist Ihre Quelle für kostengünstige Microsoft Excel-Schulungen.
Dieser Tipp (2715) gilt für Microsoft Excel 97, 2000, 2002 und 2003. Eine Version dieses Tipps für die Multifunktionsleistenschnittstelle von Excel (Excel 2007 und höher) finden Sie hier: