Gruppe
VBE
Bereich
Prozedur
Thema
Aufzurufenden Makronamen während der Laufzeit aus Zelle entnehmen
Problem
Wie kann ich während der Laufzeit zu einem Makro verzweigen, dessen Name in Zelle A1 steht?
Lösung
Geben Sie den nachfolgenden Code in ein Standardmodul ein und weisen Sie ihn einer Schaltfläche zu.
ClassModule: Tabelle1
Private Sub cdmAufruf_Click()
Call AufrufStarten
End Sub
StandardModule: basMain
Sub AufrufStarten()
Dim lRow As Long
Dim sTxt As String
sTxt = " Call " & Range("A1").Value
With ThisWorkbook.VBProject.vbcomponents("basMain").CodeModule
lRow = .ProcBodyLine("Aufruf", 0) + 1
MsgBox "Makroname wird im Aufruf-Makro eingesetzt!"
.replaceline lRow, sTxt
Call Aufruf
MsgBox "Makroname wird im Aufruf-Makro gelöscht!"
.replaceline lRow, " 'Hier wird der Code temporär eingefügt"
End With
End Sub
Private Sub Aufruf()
'Hier wird der Code temporär eingefügt
End Sub
Private Sub MeinMakro()
MsgBox "Ich bin " & Range("A1")
End Sub