>> Der Grund ist, dass sich die Shape "Schloss12.1" in einer Gruppe mit mehreren Shapes befindet. Daher muss man erst diese Gruppe ansprechen und dann die eigentliche Schloss Shape.
Wie kommst du den darauf?
Du kannst ein Shape einfach über seinen Namen ansprechen, egal ob es sich in einer Gruppe befindet oder nicht.
>> Was ist der Vorteil von Form-Control im Gegensatz zu ActiveX?
Form-Controls waren vor den ActiveX-Controls da. In der Regel werden sie nicht mehr genutzt, sind aber noch verfügbar (Abwärtskompatibilität) und haben stellenweise auch ihre Vorteile gegenüber den ActiveX-"Brüdern".
Dein Anliegen ist genau so eine Situation in der das Zutrifft. Denn man kann, wenn das Makro von einem Form-Control aufgerufen wird, dieses Control erfragen.
Das geht mit:
Application.Caller
Das liefert dir aber nicht das Objekt selbst, sondern nur eine Zeichenkette, ein Range-Objekt oder ein Error (ein spezieller Datentyp). Ausführliche Information zu Application.Caller findest du dazu in der Excel-Referenz (ich bin nicht dazu geneigt diese zu rezitieren) - im VBA-Editor einfach mal F1 drücken oder im Hilfe-Menü nachsehen. Allgemein ein guter Rat von mir, die Hilfe ist nicht nur zum Spaß da. ;)
>> Ein Makro wird dann allen Checkboxen zugewiesen und es wird mit dem Namen der Checkbox gearbeitet? Verstehe ich das so richtig?
Genau so, richtig. Du rechtsklickst dann einfach auf die das Checkbox Form Control und weißt ihm das Makro zu. Wenn du dann die CheckBox anklickst, wird das Makro ausgeführt.
Den Zustand der Checkbox erhälst du übrigens mit:
Select Case shp.ControlFormat.Value
Case -4146 'False
'...
Case 1 'True
'...
Case 2 'mixed state
'...
End Select
>> Könntest du deinen Code etwas erläutern? Ich steige da irgendwie nicht durch...
ich wüsste gar nicht was ich da erläutern soll. Es ist weder viel Code noch ist er kompliziert, und deiner vorherigen Frage nach hast du bereits erkannt worum es im Quelltext geht.
|