René Martin Microsoft Visio 2007-Programmierung ISBN-10: 3-446-41084-8 ISBN-13: 978-3-446-41084-8 Inhaltsverzeichnis Weitere Informationen oder Bestellungen unter http://www.hanser.de/978-3-446-41084-8 sowie im Buchhandel
Vorwort...XI 1 ShapeSheet-Programmierung... 1 1.1 Das ShapeSheet-Fenster...1 1.2 Aufbau des ShapeSheets...2 1.3 Shape Transform...4 1.3.1 Punkte festsetzen...9 1.4 User-defined Cells (benutzerdefinierte Zellen)...10 1.5 Scratch (Entwurf)...13 1.6 Wissenswertes über Funktionen...14 1.7 Geometry (Geometrie)...14 1.8 Actions (Aktionen)...25 1.9 Events (Ereignisse)...32 1.10 Fill Format und Line Format (Füllbereichsformate und Linienformate)...35 1.11 Character, Paragraph, Tabs und Text Block Format...37 1.12 Layer Membership und Layers (Layerzugehörigkeit und Layer)...42 1.13 Text Transform (Texttransformation)...44 1.14 Textfields (Textfelder)...48 1.15 Controls (Steuerelemente, Kontrollpunkte)...49 1.16 Connection Points (Verbindungspunkte)...54 1.17 1.18 Zugriff auf andere Shapes...56 Group Properties (Gruppeneigenschaften)...60 1.19 Protection (Schutz)...62 1.20 Weitere Shape-Informationen...64 1.20.1 Miscellaneous (Sonstiges)...64 1.20.2 Shape-Layout...66 1.20.3 Alignment (Ausrichtung)...67 1.20.4 Hyperlinks...68 1.20.5 Annotation (Kommentar)...68 1.20.6 Foreign Image Info und Image Properties (Infos zu programmfremder Grafik, Bildinformationen)...68 1.21 Shape Data (Shape-Daten)...69 V
1.22 ODBC-Informationen...78 1.23 1D-Endpoint (1D-Endpunkte)...80 1.24 Glue Info (Informationen zum Kleben)...84 1.25 Das Zeichenblatt...84 1.25.1 Page Properties (Zeichenblatteigenschaften)...84 1.25.2 Page Layout (Seitenlayout)...85 1.25.3 Ruler & Grid (Lineale und Gitter)...86 1.25.4 Print Properties (Druckeinrichtung)...86 1.26 1.27 Die Datei: Document Properties (Dokumenteigenschaften) und Reviewer (Informationen).87 Formatvorlagen...87 1.28 Smart Tags...88 1.29 Übersicht über die Abschnitte und Zellnamen...88 1.30 Bezüge auf andere Zellen...92 1.31 Übersicht über die ShapeSheet-Funktionen...93 1.32 Ein Trost?...96 2 VBA... 97 2.1 Grundlagen von VBA...97 2.1.1 Die verschiedenen Fenster...98 2.1.2 Die Arbeitsumgebung von VBA...99 2.2 Der Programmcode...100 2.2.1 Den Editor beenden...101 2.2.2 Texteingabe...101 2.2.3 Lange Textzeilen...103 2.2.4 Kommentare...104 2.2.5 Die Einstellungen...107 2.2.6 Makros ausdrucken...110 2.3 Programmieren...110 2.4 Das Meldungsfenster (Messagebox)...110 2.4.1 Der Prompt...112 2.4.2 Meldungsfenster mit zweiter aktivierter Schaltfläche...114 2.4.3 Title...114 2.4.4 Helpfile und Context...114 2.5 Eingabefeld (InputBox)...116 2.5.1 2.5.2 Title...117 Default...117 2.5.3 Xpos und Ypos...117 2.5.4 Helpfile und Context...117 2.6 Variablen, Konstanten und Datenfelder...118 2.6.1 Variablen...118 2.6.2 Verschiedene Deklarationsmöglichkeiten...119 2.6.3 Die Datentypen...120 2.6.4 Konstanten...125 2.6.5 Datenfelder (Arrays)...125 2.6.6 Konvertierung von verschiedenen Typen...128 2.7 Unterprogramme: Makro an Makro: Bitte kommen!...129 2.7.1 Lebensdauer von Variablen...133 VI
2.8 Rechnen und verknüpfen...135 2.8.1 Rechnen mit Zahlen...135 2.8.2 Rechnen mit Text...137 2.8.3 Vergleiche...144 2.9 Benutzerdefinierte Funktionen...145 2.10 Rekursives Programmieren...150 2.11 Verzweigungen...151 2.11.1 Die If-Verzweigung...152 2.11.2 Die Case-Verzweigung...156 2.12 Datumsfunktionen...158 2.12.1 Beispiel zur Rechnung mit Datumsangaben...161 2.12.2 Zahlen- und Datumsformate...162 2.13 Schleifen...166 2.13.1 For... Next...166 2.13.2 Do... Loop Until...170 2.13.3 Sprunganweisungen: GoTo...176 2.14 Klassen...179 2.15 Fehler...182 2.15.1 Fehler in der Eingabe...182 2.15.2 Ergebnisse und Zwischenergebnisse...185 2.15.3 Das Direktfenster...185 2.15.4 Einzelschrittmodus...185 2.15.5 Aktuelle Werte...186 2.15.6 Haltepunkte...186 2.15.7 Überwachungsausdrücke...187 2.15.8 Lokalfenster...187 2.15.9 Und gibt es dennoch Fehler......188 2.16 Vorschlag für eine VBA-Richtlinie...192 2.16.1 Kommentare konsequent...193 2.16.2 Namen...193 2.16.3 Variablen, Variablennamen und ihre Deklaration...194 2.16.4 Codezeilen...195 2.16.5 Verkettungen...195 2.16.6 Verzweigungen...195 2.16.7 Schleifen...196 2.16.8 Sprünge...197 2.16.9 Fehler abfangen...197 2.16.10 Prozeduren und Routinen, Module und Klassen...198 2.16.11 Objekte...198 2.16.12 Programmierstil...199 2.16.13 Strategien für die Benutzereingaben...199 2.16.14 Strategien für die Datenausgabe...201 2.16.15 Vor der Auslieferung...201 2.16.16 Zusammenfassung...201 3 Zugriff auf Visio... 203 3.1 Die oberste Ebene: Application...203 VII
3.2 Die Fenster (Windows)...206 3.3 Die Dateien...207 3.3.1 With... End With...207 3.3.2 Objektvariablen...208 3.3.3 Die wichtigsten Methoden und Eigenschaften der Documents-Sammlung...211 3.3.4 Die wichtigsten Methoden des Document-Objekts...213 3.3.5 Die wichtigsten Eigenschaften des Document-Objekts...214 3.3.6 Die Dialoge...215 3.4 3.5 Schablonen...215 Das Window-Objekt...217 3.6 Konstanten...218 3.7 Seiten (die Pages-Sammlung)...220 3.8 Eine Seite (das Page-Objekt)...220 3.9 Die Formatvorlagen...222 3.10 Die Layer...223 3.10.1 Die Anzahl der Shapes pro Layer...226 3.10.2 Das ShapeSheet...227 3.10.3 VBA...228 3.10.4 Zusammenfassung Layer...236 3.11 Shape-Zugriff...237 3.11.1 Master-Shapes in einer Schablone...237 3.11.2 Shapes auf dem Zeichenblatt...238 3.11.3 Shapes markieren...247 3.12 Neue Shapes zeichnen...252 3.12.1 Rechteck und Ellipse...252 3.12.2 Linie und Kurve...253 3.12.3 Shapes aus der Schablone ziehen...256 3.13 Shapes beschriften und formatieren...257 3.13.1 Text...257 3.13.2 Formatvorlagen (Styles)...259 3.14 Zellen (das Cell-Objekt)...264 3.15 Shapes verbinden...283 3.16 Einige wichtige und interessante Befehle...287 4 Prozeduren starten... 289 4.1 Start über Extras Makros...289 4.2 Doppelklicken...290 4.3 Der Abschnitt Ereignisse in den Shape-ShapeSheets...291 4.4 Steuerelemente...292 4.5 Visio-Ereignisse...295 4.6 Weitere Ereignisse...315 4.7 Menüs, Symbole und Tastenkombinationen...327 4.8 Symbole und Symbolleisten...336 5 Dialogboxen (Forms) und Steuerelemente... 341 5.1 Dialogboxen...341 5.1.1 Eigenschaften der Dialogbox...342 VIII
5.1.2 Befehlsschaltflächen in Dialogboxen...346 5.1.3 Mehrere Steuerelemente anordnen...349 5.1.4 Start and Go...350 5.1.5 Die Befehlsschaltfläche wird aktiviert...351 5.2 Bildfeld (Picturebox, Image)...352 5.3 Der Dialog wird beendet...353 5.4 Textfelder und ihre Beschriftung (Label)...355 5.5 Bezeichnungsfelder (Labels)...357 5.6 Optionsfelder (Optionsbuttons) und Rahmen (Frames)...360 5.6.1 Mehrere Gruppen von Optionsbuttons...365 5.7 Kontrollkästchen (CheckBoxes) und Togglebutton...365 5.8 ToggleBar...368 5.9 Ereignisse oder das Makro werden dynamisch...368 5.9.1 Ereignisse des Dialogblatts...368 5.9.2 Dynamisch ein- und ausblenden...369 5.9.3 Dynamische Größenänderung...370 5.9.4 Eingaben abfangen...370 5.9.5 Abbruch und Bestätigung mittels Tastatur...374 5.9.6 Weitere Ereignisse...375 5.10 Listenfelder (Listboxes)...379 5.11 Die Kombinationsschaltfläche (Combobox)...385 5.12 Bildlaufleiste (Scrollbar) und Spinbutton...387 5.13 Objekte, Eigenschaften und Methoden in VBA...389 5.13.1 Objekte...389 5.13.2 Methoden...389 5.13.3 Eigenschaften...391 5.14 Steuerelemente während der Laufzeit erzeugen...393 6 Zugriff auf andere Programme... 399 6.1 Zugriff auf Excel...399 6.1.1 Zugriff auf Excel-Arbeitsmappen...400 6.1.2 Zugriff auf Tabellenblätter...402 6.1.3 Welche Zelle?...404 6.1.4 Zellbereiche...405 6.1.5 6.1.6 Das Names-Objekt...406 Ausgewählte Zellen...406 6.1.7 Wie viele Zellen?...408 6.1.8 Was steht denn drin?...408 6.1.9 Wie schreibe ich s nach Excel?...409 6.1.10 Beispiele...410 6.2 Zugriff auf Word...415 6.2.1 Application und Document(s)...415 6.2.2 Daten nach Word schreiben...416 6.2.3 Range ein polymorphes Wesen...418 6.2.4 Die Range-Methode...418 6.2.5 Die Range-Eigenschaft...418 6.2.6 Neudefinieren eines Range-Objekts...419 IX
6.2.7 Kopf- und Fußzeile...420 6.2.8 Texte aus Textbausteinen...420 6.2.9 Andere Elemente einfügen...422 6.2.10 Trotzdem Selection?...422 6.2.11 Markieren von Text...422 6.2.12 Texte lesen...422 6.3 Zugriff auf Access...423 6.3.1 Das Connection-Objekt...423 6.3.2 6.3.3 Die Objekte der Datenbank...424 Die ADO-Datensatzgruppen...425 6.3.4 Bewegen innerhalb von Datensätzen...428 6.3.5 Suchen von Datensätzen...432 6.3.6 Filtern und Sortieren...437 6.3.7 Daten ändern, hinzufügen und löschen...442 6.4 Austausch mit Visio...444 6.4.1 Late Binding...444 6.4.2 Early Binding...445 7 Beispiele... 447 7.1 London Underground...447 7.2 Export von Visio-Daten nach Excel...456 7.3 Export von Access-Daten nach Visio...461 7.4 Ein Assistent zum Verschieben...471 7.5 Ein Assistent für Organigramme...483 7.5.1 1. Schritt: Shapes und ShapeSheet...483 7.5.2 2. Schritt: Die Vorlage...486 7.5.3 3. Schritt: Der VBA-Code...488 7.5.4 4. Schritt: Die Dialoge...499 7.6 Weitere Beispiele, die im Buch beschrieben wurden...500 8 Bewegung in Visio... 501 8.1 Autorennen...501 8.2 Der Viertaktmotor...505 8.3 Planetenumlaufbahn...512 8.4 Fazit...513 9 Visual Studio.net... 515 9.1 Eine Anwendung schreiben...515 9.2 Reverse Engineering...521 9.3 COM-Add-Ins...523 9.4 Ein Beispiel: FaciPlan COM-Add-In...524 9.5 Das Setup-Projekt...535 Register... 537 X