Microsoft Excel

Excel und VBA: Formeln, Programmierung, Lösungen

Die Excel/VBA-Beispiele

Thema

Aufzurufenden Makronamen während der Laufzeit aus Zelle entnehmen

Gruppe

Prozedur

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

    

Beiträge aus dem Excel-Forum zu den Themen VBE und Prozedur