Guten Tag,
ich versuche seit einiger Zeit eine Menü-Leiste (msoControlPopup) dynamisch aufzubauen. Es gibt eine Klasse A. Für jedes Objekt dieser Klasse soll es in der Menü-Leiste ein Eintrag erzeugt werden. In der Praxis funktioniert das mit einer Schleife über eine Collection meiner vorher erzuegten Objekte. Für jedes Objekt wird in die Menü-Leiste ein weiteres Menü mit jeweils 3 Einträgen erzeugt:
Hauptmenü
-> Submenü für Objekt 1
-> Button "MachDies"
-> Button "MachDas"
-> Submenü für Objekt 2
-> Button "MachDies"
-> Button "MachDas"
-> ....
Die Schaltflächen "Button MachDies" und "Button MachDas" sollen jetzt Funktionen aufrufen und entsprechend des dazugehörigen Objekts agieren. Ich muss als irgendwie der Schaltfläche mitteilen, dass sie zum Objekt 1 oder Objekt 2 gehört. Leider erhalte ich immer wieder die Fehlermeldung "Sub XY nicht gefunden".
Kann mir jmd helfen?
Jeder .OnAction-Eigenschaft wird wie folgt der Index des Objektes in der Collection übergeben. Damit sollte ich dann ja an späterer Stelle wissen, welches Objekt gefragt ist. Aber ich komme einfach nicht weiter.
.OnAction = BuildProcArgString("Funktionsaufruf", CStr(index))
Public Function BuildProcArgString(ByVal ProcName As String, ParamArray Args() As Variant)
Dim TempArg As Variant
Dim temp As String
For Each TempArg In Args
temp = temp + Chr(34) + TempArg + Chr(34) + ","
Next
BuildProcArgString = ProcName + "(" + Left(temp, Len(temp) - 1) + ")"
End Function
|