Kategorie: Visio anpassen
Neuer Tab in der Multifunktionsleiste
Hallo Herr Dr. Martin,
ich hätte nochmal ein paar spezielle Fragen zu Visio.
ich möchte gerne unter Visio eine eigene Registerkarte erstellen mit Untergruppen. In diesen Untergruppen möchte ich gerne Buttons haben die (vorhandene) Makros ausführen. ABER …
gibt es eine Möglichkeit die Makros auch unter Visio entsprechend im Menüband aufzurufen?
Vielen Dank
Mit freundlichen Grüssen
GS.
#####
Hallo Herr S.,
zu Ihren Fragen:
* Sie haben recht: in Excel kann man ein Makro direkt an ein Symbol hängen. In Visio nicht. Ich erstelle im XML-Archiv der Visio-Datei eine neue XML-Datei und füge dort die Buttons ein.
Dann weise ich ihnen den Befehl zu:
Public Sub cmdDaten3(ByRef control As IRibbonControl)
Schablonen
Hallo Rene,
Mit den Shapes habe ich ein Problem. Ich habe jetzt einige vorhandene Shapes dupliziert und diese dann geändert. Allerdings kann ich dann doppelte nicht löschen. Diese verschieben sich dann einfach nur.
Wie mache ich das genau? Ich klicke auf quick shapes hinzufügen. Dann springt das shape hoch (Bereich über Strich)
Aber ich krieg halt die ganzen doppelten gar nicht mehr raus. Generell lege ich ein shape so an (siehe nächster screenshot)
Ich hoffe, Du kannst mir hier helfen. Danke Dir!
Viele Grüße
Johannes
####
Hallo Johannes,
wenn DU eine Schablone neu erstellst und in diese Schablone Shapes reinziehst, dann findest Du in der Titelzeile ein Disketten (Speichern)-Symbol. Wird die Schablone gespeichert, verschwindet das Symbol – die Schablone ist offen – erkennbar an dem roten Sternchen. Wird die Schablone geschlossen und geöffnet, ist das Sternchen weg. Man muss die Schablone bearbeiten (Kontextmenü der Titelzeile) – dann erst kann man die Shapes in der Schablone (Mastershapes) wieder bearbeiten (erkennbar an dem roten Sternchen).
Liebe Grüße
Rene
Einfache Formen
Ich bin immer wieder verblüfft, wie man mit ein paar Linien, Kreisen und Rechtecken Aussagen schaffen kann. Beispielsweise dieses Cocktailglas.
Wenn Sie die Zitrusfrucht erstellen möchten – oder genauer: den 3/4-Kreis, können Sie mit den Vorgängen aus der Registerkarte „Entwicklertools“ dieses Shape erzeugen. Es besteht aus einem Kreis, über das ein Rechteck gelegt wurde.
Mit der Option „Zuschneiden“ erhält man die Einzelteile. Die nicht benötigten kann man ja löschen.
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
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.
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
Intelligenter Block
Hübsche Frage heute in der Visio-Schulung.
Wir hätten gerne einen Block, der beim Herausziehen Informationen abfragt. Diese Informationen sollen an bestimmte Stellen des Blocks geschrieben werden. Außerdem soll der Block in der rechten unteren Ecke stehen.
Das letzte ist schnell realisiert: Im ShapeSheet wird in der Zelle PinX eingetragen:
=GUARD(ThePage!PageWidth-10 mm)
Bei PinY:
=GUARD(10mm)
Für das erste Problem wird auf der Gruppe Daten definiert (hier: Prozess, Version, Verfasser).
In drei Mitgliedsshapes wird jeweils eines der Datenfelder angelegt, also: Prozess, Version und Verfasser.
Ein Verweis vom inneren zum äußeren Shape, beispielsweise:
=Sheet.52!Prop.Verfasser
zieht sich die Dateninformation. Diese wird nun über ein Feld eingefügt.
Über „Verhalten“ kann man verhindern, dass der Anwender aus Versehen in die Gruppe hineingelangt.
Über „Schutz“ kann man verhindern, dass der Anwender aus Versehen das Gruppenshape beschriftet.
Das Fenster „Shapedaten“
Es ist einfach und effektiv.
Ein Kunde hat an ein Zeichenblatt Datenfelder gebunden, die in einem Anmerkungsfeld rechts unten angezeigt werden. Da einige Benutzer dieses Fenster schließen, ist ein Mechanismus vonnöten, mit dem man wieder schnell öffnen kann. Na – eine Zeile „Action“ im ShapeShape. Der Befehl DoCmd(1312) öffnet jedoch das allgemeine, über dem Blatt schwebende Datenfenster. Schöner wäre das Andockfenster. Da ich den Befehl dafür nicht weiß, bemühe ich den Makrorekorder. Er zeichnet auf:
[…]
Application.ActiveWindow.Windows.ItemFromID(visWinIDCustProp).Visible = True
[…]
Im Objektkatalog finde ich die Zahl 1658 für die Konstante visWinIDCustProp. Und mit DoCmd(1658) wird das Andockfenster geöffnet.
Zufallskunst
Ein paar Zeilen Code und schon entsteht ein „Zufallskunstwerk“.
Auf die Idee hat mich François Morellet gebracht – mit seiner Ausstellung in Caen.
Und hier der Code:
Dim i As Integer
ActiveWindow.SelectAll
ActiveWindow.Selection.Delete
Randomize
For i = 1 To 100
ActivePage.DrawLine 8.2 * Rnd, 8.2 * Rnd, 8.2 * Rnd, 11.8 * Rnd
Next
ActiveWindow.DeselectAll
Steuerelemente / Controls
Animation mit Visio
Ein bisschen Spielerei, ein paar Zeilen Code.
Ja, ja, ich weiß: Visio ist sicherlich nicht das beste Programm, um solche „Zeichnungen“ zu animieren. Dennoch: wer den Code einsehen möchte: (in der Routine „Verzögern“ ist eine Schleife und der Befehl DoEvents eingebaut – sonst wäre das Glas zu schnell fertig).
Set vsShape = ActivePage.DrawRectangle(2
With vsShape
.Cells(„Geometry1.Y3“).For
.Cells(„Geometry1.Y4“).For
.Cells(„Geometry1.X5“).For
.Cells(„Geometry1.Y5“).For
ActiveWindow.DeselectAll: Verzögere
.Cells(„Geometry1.NoFill“)
.Cells(„Geometry1.X1“).For
.Cells(„Geometry1.Y1“).For
.Cells(„Geometry1.X2“).For
.Cells(„Geometry1.Y2“).For
.Cells(„Geometry1.X3“).For
.Cells(„Geometry1.Y3“).For
.Cells(„Geometry1.X4“).For
.Cells(„Geometry1.Y4“).For
.Cells(„Geometry1.X5“).For
.Cells(„Geometry1.Y5“).For
.AddRow visSectionFirstComponent, 6, visTagLineTo
.Cells(„Geometry1.X6“).For
.Cells(„Geometry1.Y6“).For
.AddRow visSectionFirstComponent, 7, visTagLineTo
.Cells(„Geometry1.X7“).For
.Cells(„Geometry1.Y7“).For
.AddRow visSectionFirstComponent, 8, visTagLineTo
.Cells(„Geometry1.X8“).For
.Cells(„Geometry1.Y8“).For
.AddRow visSectionFirstComponent, 9, visTagLineTo
.Cells(„Geometry1.X9“).For
.Cells(„Geometry1.Y9“).For
.AddRow visSectionFirstComponent, 10, visTagLineTo
.Cells(„Geometry1.X10“).Fo
.Cells(„Geometry1.Y10“).Fo
intAbschnitt = .AddSection(visSectionLast
.AddRow intAbschnitt, visRowComponent, visTagComponent
.AddRow intAbschnitt, 1, visTagRelMoveTo
.AddRow intAbschnitt, 2, visTagEllipticalArcTo
.Cells(„Geometry2.X1“).For
.Cells(„Geometry2.Y1“).For
.Cells(„Geometry2.X2“).For
.Cells(„Geometry2.Y2“).For
.Cells(„Geometry2.A2“).For
.Cells(„Geometry2.B2“).For
.Cells(„Geometry2.NoFill“)
.Cells(„LineWeight“).Formu
End With