
Einige der vorinstallierten Shapes von Visio 2007 verfügen über Optionen. Wenn ich beispielsweise einen SPDT von der Shape-Seite „Elektrotechnik › Schalter und Relais“ in meine Zeichnung einfüge, kann ich mit der rechten Maustaste darauf klicken und „Schalterposition festlegen“ auswählen.
Wie kann ich meinen eigenen Formen eine solche Funktionalität hinzufügen?
Antwort1
Ich weiß nicht, wie gut Sie mit Visio vertraut sind, aber unter jeder Form befindet sich ein sogenanntes Shapesheet. Das Shapesheet ist im Grunde eine Tabelle, in der jede Zelle Visio anweist, Ihre Form darzustellen (oder anderweitig Daten zu speichern).
Um dorthin zu gelangen, müssen Sie meines Erachtens den Entwicklermodus in Visio aktivieren. Dann können Sie mit der rechten Maustaste auf eine Form klicken und das Shapesheet-Fenster auswählen. Ich glaube, es befindet sich auch im Dropdown-Menü/Menüband „Fenster“.
Wenn Sie also das Shapesheet öffnen, können Sie Elemente wie die Breite, Höhe usw. des Shapes sehen. Und wenn Sie beispielsweise eine Zelle mit der Breite auswählen, werden Ihnen wahrscheinlich nur Werte angezeigt, aber mit einem =-Zeichen davor. Statt eines direkten Wertes für die Breite handelt es sich also tatsächlich um eine Formel. Ändern Sie die Formel für die Höhe in =Breite/2, und Sie werden sehen, dass die Höhe beim Anpassen der Breite immer die halbe Breite beträgt.
Um Ihrer Frage nun näher zu kommen, vermute ich, dass die Form, auf die Sie sich beziehen, Shapesheet-Tricks verwendet, um das zu erreichen, was sie tut. Das Shapesheet enthält viele verschiedene Datentypen und ist normalerweise in Abschnitte unterteilt. Der Abschnitt, der das Rechtsklickmenü für eine Form definiert, wird als Abschnitt „Benutzeraktionen“ bezeichnet. Wenn Sie das Shapesheet für die Switch-Form anzeigen, finden Sie wahrscheinlich eine Aktionszelle mit einer Formel, die den Wert einer anderen Zelle mithilfe von SetF oder etwas Ähnlichem ändert. Die Form ist also wahrscheinlich so eingerichtet, dass sie ihr Erscheinungsbild ändert, wenn man den Wert einer einzelnen Zelle umschaltet.
Um Ihre eigene Form auf diese Weise einzurichten, müssen Sie etwas Ähnliches tun, also im Grunde eine Benutzerzelle erstellen, die die ausgewählte Option enthält. Richten Sie dann alle Ihre anderen Formeln so ein, dass sie diese eine Zelle lesen. Dann legt Ihre Aktionszelle die Option fest, wenn darauf geklickt wird.
Sie können VBA in Visio auch verwenden, um auf Aktionsklicks zu reagieren (mithilfe einer anderen Formel – callthis). In diesem Fall ändert Ihr VBA jedoch Shapesheet-Werte und -Formeln und verwendet im Wesentlichen nur eine andere Sprache.
Es gibt online eine Fülle von Informationen dazu, wie all diese Dinge funktionieren, aber für Ihre Suche müssen Sie nur ein Wort kennen: ShapeSheet.