Grundeinstellungen

Und immer wieder die gleiche Frage in der Visio-Schulung: Plötzlich haben die neuen Rechtecke einen blauen Rand. Warum?
Die Antwort: Wenn Sie nichts markieren und dann formatieren: Linienart, Linienfarbe, Linienstärke, Füllfarbe, … dann werden diese Optionen als Grundeinstellungen für neue Rechtecke, Linien und Ellipsen verwendet.
Seltsame Formate
Seltsame Formate

Shapes anordnen

Eigentlich schade, dass Microsoft den Assistenten „Shapes anordnen“ nicht weiter nach vorne geholt hat, beziehungsweise überarbeitet hat. Denn mit seiner Hilfe kann man schnell Diagramme erstellen, bei denen Shapes viele Male nebeneinander und übereinander stehen.

Shapes anordnen
Shapes anordnen

Daten in Visio

Hallo Herr Dr. Martin,
ich hätte nochmal ein paar spezielle Fragen zu Visio.
Ich kann über VBA auf die Shape-Daten meiner Shapes auf dem Zeichenblatt zugreifen … ABER … Wie kann ich auf Shape-Daten von Schablonen über VBA zugreifen?
Und: Gibt es eine Möglichkeit die Shape-Daten eines Shapes auf einen Schlag komplett zu löschen?
Z.Zt. kann ich immer nur die einzelnen Elemente löschen aber nicht alle auf einmal.
###
Hallo Herr S.,
* Sie müssen auf alle offenen Dokumente in Visio zugreifen, überprüfen, ob es sich dabei um eine Schablone handelt, die Mastershapes auslesen und von ihnen die Daten auslesen.
 
*ich würde nicht auf die Shape-Datensätze zugreifen. Erstes weiß ich nicht, wo Visio diese abspeichert, zweites ist es mir zu unsicher und drittens vermute ich einen Bug darin (das an anderer Stelle). Ich würde auf Abschnitt und Zeilen der Shapes per Schleife zugreifen.
 
* Sie können den Abschnitt visSectionProp löschen – aber dann zickt er manchmal – oder besser: jede Zeile dieses Abschnittes.
Spitzer20151123
Beispielsweise so:
Public Sub cmdDaten1(ByRef control As IRibbonControl)
Dim strDateien As String
Dim strSchablonen As String
Dim vsSchablone() As Document
Dim strMaster() As String
Dim vsMastershape As Master
Dim i As Integer
Dim j As Integer
Dim k As Integer
Dim m As Integer
Dim strSpapeDatenzeile As String
ReDim vsSchablone(0)
For i = 1 To Application.Documents.Count
‚ — durchlaufe alle offenen Dokumente
strDateien = strDateien & Application.Documents(i).Name & vbCr
If Application.Documents(i).Type = visTypeStencil Then
‚ — wenn du eine Schablone bist
ReDim Preserve vsSchablone(UBound(vsSchablone) + 1)
strSchablonen = strSchablonen & Application.Documents(i).Name & vbCr
Set vsSchablone(UBound(vsSchablone)) = Application.Documents(i)
End If
Next i
MsgBox „Liste der offenen Dateien:“ & vbCr & strDateien
MsgBox „Liste der offenen Schablonen:“ & vbCr & strSchablonen
For j = 1 To UBound(vsSchablone)
vsSchablone(j).Masters.GetNames strMaster
‚ — alle Mastershapes der Schablone
MsgBox „Liste der Mastershapes der Schablone “ & vsSchablone(j) & vbCr & Join(strMaster, vbCr)
For k = 0 To UBound(strMaster)
Set vsMastershape = Application.Documents(vsSchablone(j).Name).Masters(strMaster(k))
strSpapeDatenzeile = „“
If vsMastershape.Shapes(1).SectionExists(visSectionProp, False) = True Then
‚ — wenn Shapedaten im Mastershape vorhanden sind.
For m = 0 To vsMastershape.Shapes(1).Section(visSectionProp).Count – 1
strSpapeDatenzeile = strSpapeDatenzeile & vsMastershape.Shapes(1).Section(visSectionProp).Row(m).Cell(0).Name & vbCr
‚###############
‚ Cell(0): Value
‚ Cell(1): Prompt
‚ Cell(2): Label
‚ Cell(3): Format
‚ Cell(4): SortKey
‚ Cell(5): Type
‚ Cell(6): Invisible
‚ Cell(7): Verify
‚ Cell(8): DateLinked
‚###############
Next
MsgBox „Mastershape „““ & vsMastershape.Name & „““ hat folgende Daten:“ & vbCr & strSpapeDatenzeile
End If
Next
Next
End Sub
 
 
 
 
Public Sub cmdDaten3(ByRef control As IRibbonControl)
Dim i As Integer
If ActiveWindow.Selection.Count = 0 Then
MsgBox „Sie haben kein Shape ausgewählt!“
ElseIf ActiveWindow.Selection.Count > 1 Then
MsgBox „Bitte markieren Sie nur ein Shape!“
Else
For i = ActiveWindow.Selection(1).Section(visSectionProp).Count – 1 To 0 Step -1
ActiveWindow.Selection(1).DeleteRow visSectionProp, i
Next
MsgBox „Alle Zeilen der Shape-Daten wurden gelöscht!“
 
End If
 
End Sub
 
Public Sub cmdDaten2(ByRef control As IRibbonControl)
If ActiveWindow.Selection.Count = 0 Then
MsgBox „Sie haben kein Shape ausgewählt!“
ElseIf ActiveWindow.Selection.Count > 1 Then
MsgBox „Bitte markieren Sie nur ein Shape!“
Else
If ActiveWindow.Selection(1).SectionExists(visSectionProp, False) = True Then
ActiveWindow.Selection(1).DeleteSection visSectionProp
MsgBox „Abschnitt „“Shape-Daten““ wurde gelöscht!“
End If
End If
End Sub
 
 
 
 
 

Daten visualisieren

Hübsche Sache, die wir gestern in der Visio-Schulung besprochen haben:
In einer Exceltabelle stehen Daten, die in Visio dargestellt werden sollen. Damit die Daten nicht ein zweites Mal abgeschrieben werden müssen habe ich vorgeschlagen die Tabelle über Daten / Benutzerdefinierter Import an die Zeichnung zu binden.
Auf eine Linie und auf ein Kästchen wird ein Datensatz gezogen. Dadurch erhält das Shape diese Informationen als Daten. Damit sie angezeigt werden, editiert man den Text ([F2]) und fügt das Datenfeld ein (Einfügen / Feld). Der Verbinder und das Kästchen können in einer Schablone gespeichert werden (zuvor sollte man die Verknüpfung der Datentabelle zu kappen). Damit die Linienstärke entsprechend der Größe der Daten angepasst wird, wird im ShapeSheet im Abschnitt „LineFormat“ in der Zelle „LineWeight“ eine Formel eingetragen, beispielsweise so:
=IF(Prop._VisDM_Einnahmen_Finanz>1000000,10 mm,
IF(Prop._VisDM_Einnahmen_Finanz>100000,5 mm,
IF(Prop._VisDM_Einnahmen_Finanz>10000,3 mm,
IF(Prop._VisDM_Einnahmen_Finanz>1000,2 mm,1 mm))))
Die Linienstärke nimmt Bezug auf das Datenfeld.
Unglücklicherweise zeigt Excel die Daten ein zweites Mal über eine Datengrafik auf dem Shape an. Da das nicht gewünscht ist, muss man in dieser Datengrafik die Felder löschen.
Und nun können die Datensätze auf das Diagramm gezogen werden.
Die Darstellung der Daten
Die Darstellung der Daten

Berichte

Und: hat man in Visio 2013 einen Bericht erstellt, öffnet diese Datei in Visio 2016, dann lässt sich der Bericht nicht mehr aktualisieren. Zumindest nicht bei dem halben Dutzend Dateien, bei denen ich es versucht habe. Ein Bug?

Berichte
Berichte

Visio 2016

Ich habe gerade eben Office 2016 und Visio 2016 installiert. Mein erster Eindruck: Ich finde nichts Neues darin. Okay, in der Vorlage Raumplan, sind die Tische jetzt gelb, die Stühle grün, die Pflanzen noch grüner und einige Figürchen sind vorhanden (erstaunlich ist, dass sich die Menschen in der Schablone „Bürozubehör“ befinden). Dafür sind die Möbel nicht mehr im Normmaß. Oder haben Sie einen Schreibtisch mit den Maßen 965 x 1734 mm?
Vorteil der neuen Version: man muss nichts neu lernen. Nachteil: Man zahlt (viel?) Geld für nichts (Neues).
Aber ich werde weiter suchen – vielleicht finde ich ja noch etwas …

Raumplan mit Visio 2016
Raumplan mit Visio 2016

pdf

Schöne Frage im Visio-Kurs: Wenn ich aus einer Visio-Zeichnung ein pdf-Dokument erstelle, werden die Hyperlinks nicht mitgenommen. Ich drucke mit dem pdf-Creator.
Meine Antwort: Speichern Sie es mit der Visio-eigenen Speichern-Funktion als pdf (oder exportieren Sie es als pdf). Dann werden Hyperlinks mitgenommen:

Hyperlinks im pdf
Hyperlinks im pdf

Es klebt nicht (mehr)

Manchmal werde ich in Schulungen gefragt, warum denn plötzlich das Kleben nicht funktioniert. Und tatsächlich: Ein Blick in den Dialog „Visuelle Unterstützung“ zeigt, dass das Klebeverhalten deaktiviert ist. Der Grund liegt meistens darin, dass der Teilnehmer aus Versehen auf die Funktionstaste [F9] gedrückt hat – wahrscheinlich wollte er [F8] zum Ausrichten drücken. Und das Gemeine: Man sieht nicht, dass [F9] das Klebeverhalten deaktiviert.

kleben
kleben

Daten verknüpfen

Hallo Rene,
wie geht es dir? Hoffe alles gut und ihr hattet wie wir hier heute schon den ersten Schneefall?

Ich bekomm es leider immer noch nicht hin, dass ich das Feld „Zeichnungs-Nr.:“ mit den passend Feld in den Shape-Daten verknüpfe, so dass ich nichts mehr ins Schriftfeld schreiben muss.  Wie Funktioniert das richtig und möglichst einfach? Weiter ist mir noch eingefallen, dass das Feld „Datum“ mit „Datum Rev.A“ immer übereinstimmen muss. Das kann man doch bestimmt auch zusammenfassen oder?

Viele liebe Grüße
Nils
#####
Hallo Nils,

zu Deinen Fragen:

1. nö – zum Glück noch kein Schnee. Zum Glück, weil ich Fahrrad fahre und keinen Schnee in der Stadt mag!

2. Layer-Schutz raus vom Block. Markiere das Feld „Zeichnungs-Nr.:“ (es sind mehrere Klicks nötig, weil wahrscheinlich Gruppe in der Gruppe in der Gruppe) Dort wird ein Datenfeld „Zeichnungsnummer“ angelegt. Im ShapeSheet holst Du Dir die Info des Zeichenblattes:
=ThePage!Prop.Zeichnungsnummer
Schriftfeld20151014_1
Shape auf der Zeichnung markieren; mit [F2] editieren, an das Ende des Textes klicken (sonst wird der Text überschrieben). Und dort wird mit Einfügen / Feld das Datenfeld eingefügt.

Schriftfeld20151014_2

3. Klar – Du kannst einen Bezug von einem Shape auf ein anderes machen. Schau nach, wie es heißt (hier: Sheet.439). Und dann verweist Du mit =Sheet.439!Prop.Datum auf die andere Zelle.
Übrigens würde ich die 0 im Feld Datum ausblenden mit:
=GUARD(IF(ThePage!Prop.Datum=0,““,ThePage!Prop.Datum))

Kommst Du damit klar?

Wenn nicht – frag mich einfach

lg

Rene