Schatten

Guten Tag, Wenn ich in Visio 2016 ein Shape zeichne erstellt es mir immer einen Schatten. Wo kann ich das deaktivieren? Freundlicher Gruss
R.
Hallo Herr C.,
ich vermute, Sie verwenden eine sehr alte Visio-Version. Früher hatte Visio „Schatten“, die konnte man in den Fülloptionen einstellen. Sie wurden durch die Effekte ersetzt. Es gibt aber immer noch die alten „Schatten“. Sie können diese im ShapeSheet ausschalten. Kennen Sie es?
 
Im ShapeSheet finden Sie im Abschnitt „Fillformat“ die Zellen ShdwForegnd, ShdwPattern, ShapeShdwOffsetX und ShapeShdwOffsetY. Sie sind für Schattenfarbe, Muster und Position des Schattens verantwortlich.
Kommen Sie damit klar?
 
schöne Grüße :: Rene Martin

Daten und Datengrafik

Eine hübsche Frage zu Visio:
An eine Zeichnung wird eine Exceltabelle gebunden mit technischen Informationen. Einige davon werden über eine Datengrafik angezeigt. Die Frage: Ich möchte die Texte ein klein wenig verschieben.
Leider sind die Datengrafiken etwas sperrig in Bezug auf die Anpassung, beispielsweise von Textpositionen.
Ich schlage vor ein eigenes Shape zu erstellen. Eine Gruppe, die mehrere Mitgliesdselemente beinhaltet. Ein Datensatz wird auf die Gruppe gezogen. Die „inneren“ Shapes holen sich mit einem Verweis auf das äußere Gruppenshape die Information, beispielsweise
=Sheet.4711!Prop._vis_Power
Diese Information wird angezeigt, kann bequem formatiert und verschoben werden. Die Datengrafik muss entfernt werden.
Und dann kam die Frage: Aber ich möchte möglicherweise noch eine Farbe verwenden – je nach Wert. Natürlich kann man so etwas im ShapeSheet einrichten. Datengrafik wäre einfacher.
Mein Vorschlag – warum nicht beides: ein selbst gebautes Shape, dass die Daten anzeigt unter Verwendung der Datengrafik. Der Vorschlag kam gut an.

Externe Daten

Wenn man in Visio externe Daten an eine Datei bindet, kann man leicht per Programmierung darauf zugreifen.
MsgBox ActiveDocument.DataRecordsets(1).CommandString
zeigt, dass ein SQL-Befehl dahinter liegt.


Mit einer Schleife kann man beispielsweise alle Namen auslesen:
ActiveDocument.DataRecordsets(1).DataColumns(j).Name

DrawOval

In Visio kann man mit dem Befehl DrawRectangle und DrawOval ein Rechteck, beziehungsweise eine Ellipse zeichnen. Wer braucht denn so etwas?
Sie können diese Funktion verwenden, um in einer »durchgerechneten« Zeichnung Shapes kennzeichnen, die richtig positioniert, geklebt, beschriftet, … wurden. In folgendem Code wurden sämtliche Shapes in einem Datenfeld »eingesammelt« und dann ausgewertet. Die Shapes, die nicht verbunden sind, werden durch einen roten Punkt gekennzeichnet:
If InStr(1, ActivePage.Shapes(strVerbindername).Cells(„EndX“). _
FormulaU, „_WALKGLUE“) > 0 Then ‚ — falls V. dynamisch klebt
blnKlebtNicht = True: blnMindestensEinerKlebtNicht = True
Set vsShape = ActivePage.DrawOval(ActivePage.Shapes( _
strVerbindername).Cells(„PinX“).Result(„in“) – 0.5, _
ActivePage.Shapes(strVerbindername).Cells(„PinY“).Result(„in“) _
– 0.5, ActivePage.Shapes(strVerbindername).Cells(„PinX“). _
Result(„in“) + 0.5, ActivePage.Shapes(strVerbindername). _
Cells(„PinY“).Result(„in“) + 0.5)
vsShape.Cells(„FillForegnd“).FormulaU = „=2“ ‚ — rot
vsShape.Text = „Verbindungsfehler“
vsShape.AddSection visSectionProp
vsShape.AddRow visSectionProp, 1, 0
vsShape.Section(visSectionProp).Row(0).Name = _
„Verbindungsfehler“
[…]

Liniensprünge

Wenn Sie in Visio das Liniensprungformat „Bogen“ in Seite einrichten / Layout und Routing verwenden, ist häufig „Nacharbeit“ gefragt. Amüsant übrigens: Wenn Verbinderlinien sehr eng nebeneinander laufen, erzeugt Visio große Bögen.


„Lücken“ als Linienspungformat sind häufig angenehmer.

Größe der Festplatte visualisieren

Ein paar Zeilen Code und man kann sich die Größe der Festplatte visualisieren lassen:
Sub Festplatte()
Dim lngFestplattengröße As Double
Dim lngFreierPlatz As Double
Dim i As Integer
lngFestplattengröße = GetDriveSpace(Left(Application.Path, 2), DRIVE_TOTALSIZE) / 1000000
For i = 1 To 6
ActivePage.Shapes(„Text“ & i).Text = Format(Int(lngFestplattengröße / 7) * i / 1000, „#,##0“)
Next i
 
ActivePage.Shapes(„Gesamt“).Text = „Gesamtgröße der Festplatte: “ & Format(lngFestplattengröße, „#,##0″) & “ GByte“
 
lngFreierPlatz = GetDriveSpace(Left(Application.Path, 2)) / 1000000
ActivePage.Shapes(„Zeiger“).Cells(„Angle“).ResultFromInt(81) = 90 – (lngFreierPlatz / lngFestplattengröße) * 270
ActivePage.Shapes(„Zeiger“).Cells(„Angle“).Formula = „=“ & (90 – (lngFreierPlatz / lngFestplattengröße) * 270) & “ grad“
End Sub
Okay – man benötigt noch eine FUnktion, die die Größe der Festplatte und den belegten Speicher anzeigt. Beispielsweise folgende:
Public Enum eSpaceType
DRIVE_FREESPACE = 1
DRIVE_TOTALSIZE = 2
End Enum
 
‚ Freien Speicherplatz/Gesamtgröße eines Laufwerks ermitteln
Public Function GetDriveSpace(ByVal sDrive As String, _
Optional ByVal nSpaceType As eSpaceType = DRIVE_FREESPACE) As Currency
Dim oWMI As Object
Dim oDrives As Object
Dim sSQL As String
Dim oDrive As Object
sSQL = „SELECT * FROM Win32_LogicalDisk WHERE DeviceID = ‚“ & sDrive & „‚“
Set oWMI = GetObject(„winmgmts:“)
Set oDrives = oWMI.ExecQuery(sSQL)
If Not oDrives Is Nothing Then
If oDrives.Count > 0 Then
For Each oDrive In oDrives
If nSpaceType = DRIVE_FREESPACE Then
‚ freien Speicherplatz zurückgeben
GetDriveSpace = oDrive.FreeSpace
Else
‚ Gesamtgröße des Datenträgers zurückgeben
GetDriveSpace = oDrive.Size
End If
Exit For
Next
End If
End If
Set oDrives = Nothing
Set oWMI = Nothing
End Function

Shape-Reports

Schöne Aufgabe.
An eine Visio-Zeichnung wurden externe Daten gebunden: Eine Exceltabelle mit Informationen zu Racks. Die Aufgabe: Pro Gestell sollen die Infomationen der Racks zusammengefasst werden.


Nichts leichter als das – dafür stellt Visio einen Assistenten Shape-Berichte zur Verfügung.
Doch schon bei der ersten Frage zögere ich – welche Shapes sollen denn eingesammelt werden? Ich greife auf die x- und y-Position zu UND überprüfe, ob ein bestimmtes Datenfeld vorhanden ist. So stelle ich sicher, dass ich einerseits die Racks eines bestimmten Schrankes habe, andereseits aber nicht Elemente des Schranks selbst.


Der zweite Schritt ist leichter – es werden die Daten ausgewählt, die eingesammelt werden sollen.


Da die Summe berechnet werden soll, muss man die Option „GESAMT“ wählen. Einzelwerte sollen nicht angezeigt werden. Dies kann man über die Schaltfläche „Optionen“ deaktivieren.


Über die Schaltfläche „Sortieren“ ist es möglich die Reihenfolge der Felder zu ändern.


Der Bericht wird gespeichert.


Und ausgeführt – als Visio-Shape in der Zeichnung. Ebenso werden weitere Berichte erzeugt.


Über das Kontextmenü können die Berichte nun aktualisiert werden.

Schriftgröße

Erstaunlich!

Die Aufgabe lautet: Wir haben in CorelDraw technische Geräte erstellt – diese sollen in Visio nachbearbeitet werden, so dass man sie verwenden kann. Ich schaue sie mir an. Das Rack ist zu groß für den Schrank:

Also verkleinern. Das Dumme ist: Durch das Verkleinern des Objektes wird die Schriftgröße (und Linienstärke) nicht verkleinert, weil diese Formatierungsattribute unabhängig von der Größe sind. Das heißt: die Schrift ist zu groß:

Also zurück auf Originalgröße. Einige der Texte sind in 3 pt formatiert:

Wenn ich sie auf 10% verkleinere, also auf 0,3 pt – weigert sich Visio:

Setzt die Schriftgröße ungefragt auf 1 pt zurück.

Was würde Excel machen? Eine Fehlermeldung! DAS ist vernünftig:

Lob an Excel! Schelte an Visio!

Zugegeben: ich musste in Excel noch nie eine Schriftgröße < 1 pt wählen …

Nachtrag: ich habe die Originalzeichnung in CorelDraw bearbeitet: Dort die Schrift in Kurven konvertiert und anschließend erneut nach Visio exportiert. Dann wird die Schrift beim Verkleinern des Objekts auch verkleinert.

Linien-Abschlusstyp

Ein Kunde hat technische Geräte in CorelDraw erstellt. Sie sollen in Visio weiter verarbeitet werden. Also werden sie nach Visio exportiert. Dort fällt mir auf, dass einige der Shapes an den Ecken kleine Lücken aufweisen. Und nein – es liegen keine Linien vor, sondern geschlossene Streckenzüge.
Die Ursache ist schnell gefunden – man muss in den Linienformatierungen die Option von „flach“ auf „rechteckig“ umschalten – und dann klappt es.

Dynamische Breite und Höhe

Hallo Herr Martin,
in einer excel Tabelle habe ich flächen mit den jeweiligen abmaßen beschrieben. Ist es möglich diese Tabelle mit visio derart zu verknüpfen, dass die shapes (ähnlich wie in der netzwerkverknüpfung die sie beschrieben haben und die Formatierung der shapes beeinflusst haben) direkt in der beschriebenen Größe erzeugt werden? Wenn ja, ist das ohne großen programmieraufwand möglich und wo könnte ich mir das Vorgehen anlesen/zeigen lassen?
Ziel ist es lediglich in der Tabelle zu arbeiten und die shapes dann „automatisch“ anzupassen
 
Vielen Dank und ein schönes Wochenende
 
####
 
Hallo Herr G,
kennen Sie das ShapeSheet?
Erzeugen Sie eine Zeichnung und verknüpfen diese mit einer Exceltabelle.
Erzeugen Sie ein Rechteck.
Verknüpfen Sie einen Datensatz mit diesem Rechteck.
Verweisen Sie im ShapeSheet des Rechtecks bei der Breite auf die Spalte der Breite; bei der Höhe auf die Spalte mit der Höhe. Fläche wird nicht funktionieren!
Duplizieren Sie dieses Rechteck und weisen den anderen Rechtecken die anderen Datensätze zu.
Klappt!