Letzte Woche kam die Frage, ob man die Shape-Daten in Visio auch beim Drüberfahren anzeigen lassen kann. Natürlich war meine Antwort „nein“ – wissend, dass man mit einem kleinen Skript so etwas programmieren kann:
ActiveWindow.Selection(1).Cells(„Comment“).FormulaU = „“““Anzahl der Lautsprecher“ & vbCr & Me.txtAnzahl.Value & „“““
Oder man verweist auf die andere Zelle im ShapeSheet:
=“Anzahl der Lautsprecher: „&Prop.Anzahl_der_Lautsprecher
Aber beide Lösungen sich etwas mühsam – deshalb empfehle ich lieber Datengrafiken.
Kategorie: Visio anpassen
Hyperlink
Um so ein Hyperlink-Shape zu erzeugen, das den Hyperlink-Dialog beim Herausziehen aus der Schablone öffnet, muss im ShapeSheet in der Zelle EventDrop der Befehl =DOCMD(1585) eingefügt werden. Warum 1585? Diese Zahl steht für die Konstante visCmdInsertHyperLink, die man in VBA im Objektkatalog in der Klasse VisUICmds
Bleistift
Gestern bemerkte ich in der Visio-Schulung, dass ein Teilnehmer Schwierigkeiten mit dem Werkzeug „Bleistift“ hatte. Also erklärte ich es ihm: Der Bleistift hat zwei Funktionen in Visio – zum einen dient er zum Zeichen von freien gerade Linien oder Kurven. Zum anderen kann man damit vorhandene Shape – falls kein Schutz auf ihnen liegt – deformieren. Wenn man die Knoten markiert, kann man die „Eckpunkte“ verschieben; wenn man die Punkte zwischen den Knoten verschiebt, kann man Kurven erzeugen. Das leuchtet ein.
Fotos beschneiden
Nein, man kann in Visio keine Fotos beschneiden. Man kann nicht einen ovalen Bereich extrahieren. Aber man kann zwei Rechtecke darüber legen und diese mit den Vorgängen kombinieren, so dass ein Loch durch das eine Rechteck hindurchgestanzt wird. So kann man abgerundete Ecken bei einem Pixelbild in Visio erzeugen.
ShapeSheet
Viele Anwender fürchten sich vor den ShapeSheet in Visio. Dabei kann man auch ohne profunde Kenntnis der parametrisierten Daten dort Dinge entdecken und korrigieren. Beispielsweise die Position der Verbindungspunkte – man kann kontrollieren, ob sie sich genau in der Mitte befinden. Der mittlere, untere beispielsweise sitzt nicht genau in der Mitte – er müsste auf Width*0.5 geändert werden.
Der Masterexplorer
„Was ist der Masterexplorer und warum ist das Feld in der Registerkarte Entwicklertools ausgegraut?“ will heute eine Teilnehmerin in der Visio-Schulung wissen. Als wir zum Kapitel „eigene Shapes erstellen und Master-Shapes in der Schablone bearbeiten“ kommen, erkläre ich ihr, dass man ein Master-Shape bearbeiten kann. In diesem Fenster zeigt der Masterexplorer sämtliche Mitgliedsshapes (und auch noch einige weitere Informationen) des Master-Shapes an.
Schablonen
Heute in der Visio-Schulung tauchte die Frage auf, wie man den Namen einer Schablone ändern kann. Wenn man eine Schablone gespeichert hat, wird der Dateiname als Beschriftung in der Titelzeile angezeigt. Ein Ändern des Dateinamens bewirkt jedoch nicht eine Änderung der Titelzeile. Die Lösung: Öffnen Sie die Schablone zur Bearbeitung und tragen Sie in den Eigenschaften den „Titel“ ein. Dieser wird dann in der Titelzeile angezeigt.
Symbole im Kontextmenü
Wenn Sie in Visio ein Shape erstellen und im selbstdefinierten Kontextmenü ein Symbol einfügen möchten, steht Ihnen in der Zelle ButtonFace die Möglichkeit zur Verfügung über eine Nummer ein Symbol einzufügen. Doch – welche Nummer steht für welches Symbol?
Antwort: Die Nummern entsprechen den „alten“ Symbolen früherer Visio – oder genauer: Office-Versionen. Mit einem kleinen VBA-Skript können sie ausgelesen werden:
Sub SymbolleistenErzeugen()
Dim vsSymbleisten As CommandBars
Dim vSymbleise As CommandBar
Dim vsSymb As CommandBarButton
Dim i As Integer
On Error Resume Next
Set vsSymbleisten = Application.CommandBars
vsSymbleisten(„Meine eigen Symbolleiste“).Delete
Set vSymbleise = vsSymbleisten.Add _
(„Meine eigen Symbolleiste“, msoBarTop, False, True)
vSymbleise.Visible = True
For i = 1 To 2000
Set vsSymb = vSymbleise.Controls.Add(ID:=i)
If Err.Number = 0 Then
vsSymb.Style = msoButtonIconAndCaption
vsSymb.Caption = i
Else
Err.Clear
End If
Next
End Sub
Erstaunlicherweise werden in Excel mehr Symbole angezeigt als in Visio – die Nummern können aber auch in Visio verwendet werden, wie hier beispielsweise 107,37, 714, 6505, …
Subtrahieren
So eine Form (rot umrandet) habe ich heute für eine technische Zeichnung in Visio benötigt.
Nun – das ist nicht schwierig zu erstellen: Man zeichnet fünf Rechtecke. Die vier Rechtecke an den Ecken sind gleich groß. Die fünf Objekte werden jeweils zueinander ausgerichtet und verteilt. Bei den vier äußeren Rechtecken werden die Ecken abgerundet (Rundungsvoreinstellungen). Anschließend wird zuerst das innere Rechteck markiert (Bezugsshape!), anschließend die vier äußeren. Mit dem Befehl „Subtrahieren“ aus der Gruppe „Shape-Design“, das Sie hinter der Registerkarte „Entwicklertools“ finden, werden die vier äußeren Shapes vom inneren abgezogen. Ein Blick ins ShapeSheet zeigt, dass das Objekt symmetrisch ist.
Blätter nicht drucken
Hallo Herr Martin,
[…]Und dann habe ich noch eine Frage, die Sie mir vielleicht kurz beantworten können.
Ich habe eine Zeichnung mit mehreren Zeichenblättern, wo ein (ggf. mehrere) Blätter grundsätzlich nicht gedruckt werden sollen. Beispielsweise: Titelblatt, Zeichnung 1, Zeichnung 2, Anlage, Info. Das Zeichenblatt „Info“ soll nicht gedruckt werden. Kann ich im ShapeSheet bei den Print-Properties etwas ergänzen/ändern, womit der Ausdruck dieses Blattes verhindert wird.
Falls das geht, daran anschließend die Frage, was mit der Fußzeile passiert, wenn ich dort Seitenzahlen im Sinne von „Seite 1 von 5“ stehen habe (und es nun aber nur 4 Seiten sind, die gedruckt werden).
Wenn es hierfür eine einfache und schnelle Lösung gibt, wäre ich für einen Hinweis dankbar. Sollte das nur mit mehr Aufwand machbar sein, bitte ich um eine kurze Einschätzung hierüber.
Vielen Dank und Gruß
DF.
Hallo Herr F.,
ich hätte schwören können, dass es im ShapeSheet eine Zelle des Zeichenblattes gibt, mit dem man das Drucken verhindern kann. Aber bevor ich antworte ohne noch einmal ins ShapeSheet zu schauen – ein Blick (haben Sie sicherlich auch) und padautz: es gibt wirklich keine Zelle. Warum meine Sicherheit? Weil ich
1. das Blatt mit UIVisibility verbergen kann
2. ein Shape mit NonPrinting nicht ausdrucken kann
3. einem Shape, das auf einem Layer liegt, über die Layereigenschaften das Drucken verhindern kann.
Obwohl das Zeichenblatt auch ein ShapeSheet besitzt, findet sich dort weder eine Eigenschaft NonPrinting, noch kann ich ein Blatt auf einen Layer legen.
Wie würde ich das Problem lösen: Machen Sie die Blätter, die nicht ausgedruckt werden sollen, zu Hintergrundblättern. Dann erscheinen sie auch nicht bei der Zählung der Seitenzahlen (Feld: Zeichenblattinfo/Anzahl der Zeichenblätter = Anzahl der Vordergrundzeichenblätter). Das Hintergrundblatt muss ja nicht von einem Vordergrundblatt verwendet werden. Kleiner Nachteil: es liegt halt immer am „Ende“ der Zeichenblätter …
Hilft Ihnen das?
schöne Grüße
Rene Martin