Hallo VBA-cracks,
ich möchte Command-Buttons in variabler Anzahl per VBA erzeugen und mit Makros verknüpfen und bin trotz intensiven googelns und Lektüre meines VBA-Kompendiums nicht weitergekommen.
Bei gewöhnlichen Steuerelementen ist mir das bereits mit folgender Syntax gelungen:
objBut.OnAction = "'Schaltfläche_Klicken""" & i & "'"
(Die Logik hinter dem Wust an Anführungszeichen verstehe ich nicht, aber es funktioniert)
Dem Makro Schaltfläche_Klicken wird also die Variable i übergeben, so dass die unterschiedlichen Schaltflächen mit unterschiedlichen, von i abhängigen, Aktionen verknüpft sind.
Nun möchte ich diese Funktionalität mit Activex-Steuerelementen (command-Buttons) realisieren.
Ich habe es mit folgendem Code probiert:
For i = 1 To n
ActiveSheet.OLEObjects.Add(ClassType:="'Forms.CommandButton.""" & i & "'", Link:=False _
, DisplayAsIcon:=False, Left:=198, Top:=168 + i * 50, Width:=60, Height:=50)
Next
Diese Anweisung produziert aber leider einen Syntaxfehler.
Wenn ich die Variable i weglasse und einfach nur
Forms.CommandButton.1
schreibe, werden die Buttons automatisch durchindiziert. Ich kann dann zwar nicht mehr so leicht steuern, welcher Button zu welchem Index gehört, aber zur Not käme ich so auch klar.
Das Hauptproblem sehe ich bei der Verknüpfung mit Makros auf mich zukommen, denn der folgende Code kann natürlich nicht funktionieren:
Private Sub CommandButton& i &_Click()
Befehle...
End Sub
Ich müsste stattdessen wohl irgendwie dynamisch Makros in der benötigten Anzahl erzeugen.
Ich hoffe ihr habt Ideen, wie sich das lösen lässt.
Wenn die Sache nicht mit ein paar kurzen Hinweisen zu erklären ist, wäre ich für einen Hinweis, wo ich Informationen zu meinem Problem im Netz finden kann, auch sehr dankbar.
|