Visio2002: OLE-Automatisierung in Visio verwenden

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 309603 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Dieser Artikel wurde zuvor veröffentlicht unter D309603
Dieser Artikel ist eine Übersetzung des folgenden englischsprachigen Artikels der Microsoft Knowledge Base:
309603 Visio2002: How to Use OLE Automation with Visio
Bitte beachten Sie: Bei diesem Artikel handelt es sich um eine Übersetzung aus dem Englischen. Es ist möglich, dass nachträgliche Änderungen bzw. Ergänzungen im englischen Originalartikel in dieser Übersetzung nicht berücksichtigt sind. Die in diesem Artikel enthaltenen Informationen basieren auf der/den englischsprachigen Produktversion(en). Die Richtigkeit dieser Informationen in Zusammenhang mit anderssprachigen Produktversionen wurde im Rahmen dieser Übersetzung nicht getestet. Microsoft stellt diese Informationen ohne Gewähr für Richtigkeit bzw. Funktionalität zur Verfügung und übernimmt auch keine Gewährleistung bezüglich der Vollständigkeit oder Richtigkeit der Übersetzung.
Alles erweitern | Alles schließen

Auf dieser Seite

Zusammenfassung

Dieser Artikel beschreibt und veranschaulicht, wie Sie mithilfe von Visual Basic oder Visual Basic for Applications Microsoft Visio 2002 aus einem anderen Programm heraus automatisieren können.

Weitere Informationen

Die Verwendung der hier aufgeführten Informationen, Makro- oder Programmcodes geschieht auf Ihre eigene Verantwortung. Microsoft stellt Ihnen diese Informationen sowie Makro- und Programmlistings ohne Gewähr auf Richtigkeit, Vollständigkeit und/oder Funktionalität sowie ohne Anspruch auf Support zur Verfügung. Die zur Verfügung gestellten Makro- und Programmierungsbeispiele sollen lediglich exemplarisch die Funktionsweise des Beispiels aufzeigen.

Was ist Automatisierung?

Automatisierung (auch OLE-Automatisierung genannt) stellt in Visual Basic einen Prozess dar, durch den ein Programm von einem anderen Programm oder externen Entwicklungstool aus kontrolliert wird. Sie können jedes beliebige Programm automatisieren, das ein Visual Basic-Objektmodell enthält. Ein Objektmodell stellt eine hierarchische Sammlung von Objekten des Programms dar, die verfügbar oder über Visual Basic zugänglich sind.

Das Objektmodell für Microsoft Visio enthält beispielsweise folgende Objekte:
  • Anwendungsobjekt/globales Objekt
  • Dokumentobjekt
  • Seitenobjekt
  • Master-Objekt
  • Auswahlobjekt
  • Shape-Objekt
  • Fensterobjekt
Jedes dieser Objekte verfügt über einen Satz aus Methoden und Eigenschaften, die notwendig sind, um sie in Visual Basic zu verändern. Ein Shape-Objekt kann beispielsweise alle Elemente einer Visio-Zeichnungsseite darstellen, die Sie mit dem Mauszeiger markieren können - ein Shape, eine Gruppe, eine Führungslinie, ein Steuerelement oder ein Objekt einer anderen Anwendung, das in eine Visio-Zeichnung eingebettet bzw. importiert ist oder damit verknüpft wurde.

Erste Schritte

Der Beispielcode in diesem Artikel veranschaulicht, wie Sie Microsoft Visio 2002 von Microsoft Access 2002, Microsoft Excel 2002, Microsoft PowerPoint 2002, Microsoft Word 2002, Microsoft Visual Basic 6.0 oder von einem anderen Programm aus kontrollieren können, das ein Visual Basic-Entwicklungstool enthält.

Die Automatisierung von Visio 2002 wird in vier hauptsächlichen Schritten durchgeführt:
  1. Einen Verweis zur Microsoft Visio 2002-Typenbibliothek hinzufügen.
  2. Eine Variable als Visio-Objekttyp (in der Regel Visio.Application oder Visio.Documents) deklarieren.
  3. Weisen Sie der Objektvariablen, die Sie in Schritt 2 deklariert haben, die Methode GetObject oder CreateObject zu.
  4. Verwenden Sie die Eigenschaften, Methoden und untergeordneten Objekte des Visio-Objekts, um Visio zu automatisieren.

Schritt 1: Einen Verweis zur Visio-Typenbibliothek hinzufügen

Gehen Sie folgendermaßen vor, um mithilfe von Access 2002, PowerPoint 2002, Excel 2002 oder Word 2002 einen Verweis zur Microsoft Visio 2002-Typenbibliothek hinzuzufügen:
  1. Zeigen Sie in Access, PowerPoint, Excel oder Word im Menü Extras auf Makros, und klicken Sie danach auf Visual Basic-Editor.
  2. Klicken Sie im Menü Extras auf Verweise.

    Anmerkung: Klicken Sie im Menü Projekt auf Verweise, um den Verweis mithilfe von Microsoft Visual Basic 6.0 hinzuzufügen.
  3. Aktivieren Sie in der Liste Verfügbare Verweise das Kontrollkästchen Microsoft Visio 2002-Typenbibliothek.
Wenn Sie den Verweis Microsoft Visio 2002-Typenbibliothek hinzufügen, kann Ihr Programm auf die Microsoft Visio-Onlinehilfe und das Visio-Objektmodell zugreifen. Da die Verweise in jedem Projekt gespeichert werden, müssen Sie den Verweis "Visio-Typenbibliothek" für jedes Visual Basic-Projekt bzw. Visual Basic for Applications-Projekt hinzufügen, für das Sie Visio automatisieren möchten.

Schritt 2: Die Objektvariable deklarieren

Definieren Sie eine Variable als einen spezifischen Visio-Objekttyp, wie z. B. Visio.Application, Visio.Documents oder Visio.Page, um eine Visio-Objektvariable zu deklarieren.

Das explizite Deklarieren des Objekttyps wird Frühe Bindung genannt, da die Controlleranwendung das Objekt eher zur Kompilierungszeit als zur Laufzeit an die Visio-Anwendung bindet. Dadurch können Sie auf automatische Visio-Listen und kontextsensitive Hilfe in Visio zugreifen, außerdem kann der Code effizienter ausgeführt werden.

Weitere Informationen zur Bindung von Objekten finden Sie in folgendem Artikel der Microsoft Knowledge Base:
138138 INFO: Late, ID, Early Binding Types Possible in VB for Apps
In folgendem Visual Basic-Beispielargument wird die Variable AppVisio als ein Objekt des Typs Visio.Application deklariert:

   Dim AppVisio as Visio.Application

Schritt 3: Die Variable setzen

In Visual Basic stehen Ihnen zwei Methoden zur Aktivierung von Visio zur Verfügung: CreateObject und GetObject. Der wesentliche Unterschied zwischen diesen Methoden ist, dass die CreateObject-Methode eine neue Visio-Instanz erstellt, und die GetObject-Methode verwendet eine Visio-Instanz, die bereits ausgeführt wird. Mithilfe von GetObject können Sie auch Ihre Objektvariable auf ein spezifisches Visio-Dokument setzen.

Im folgenden Beispielargument wird mithilfe der Funktion von CreateObject die Variable AppVisio auf die Visio-Anwendung gesetzt:
   Dim AppVisio as Visio.Application

   Set AppVisio = CreateObject("Visio.Application")
In einigen Fällen möchten Sie eventuell eine bestehende Instanz von Visio verwenden, wenn Visio bereits ausgeführt wird, oder aber eine neue Instanz erstellen, wenn Visio nicht ausgeführt wird. Erstellen Sie hierzu eine Fehlerbehandlung, die die Methode CreateObject verwendet, falls die Methode GetObject fehlschlägt, wie dieser Code demonstriert:
   Dim AppVisio As Visio.Application

   On Error Resume Next

   Set AppVisio = GetObject(, "visio.application")

   If AppVisio Is Nothing Then
      Set AppVisio = CreateObject("visio.application")
   End If
Anmerkung: Sie können die CreateObject-Funktion auch verwenden, um eine Visio-Instanz zu erstellen, die nicht sichtbar ist. Beispiel:
Set AppVisio = CreateObject("Visio.InvisibleApp")
Sie können dann mithilfe der Sichtbar-Eigenschaft des Anwendungsobjekts kontrollieren, ob die Instanz sichtbar ist.

Sie können das InvisibleApp-Objekt nur mit der CreateObject-Funktion verwenden. Wenn Sie den Versuch unternehmen, das Objekt mit der GetObject-Funktion zu verwenden, wird dieser Versuch fehlschlagen. Das Objekt InvisibleApp ist in Visio-Versionen, die älter sind als Microsoft Visio 2000, nicht verfügbar.

Schritt 4: Die Objekte, Methoden und Eigenschaften von Visio verwenden

Nachdem Sie die Schritte 1 bis 3 durchgeführt und abgeschlossen haben, können Sie mithilfe der Visio-Objektvariablen Visio automatisieren.

Folgendes Beispielmakro startet Visio mithilfe der Automatisierung, erstellt eine neue Zeichnung (Dokument) auf der Grundlage der Vorlage für allgemeine Diagramme, fügt ein Rechteck ein und etwas Text hinzu, speichert die Zeichnung und beendet Visio.
Sub AutoVisio()

   
   Dim AppVisio As Visio.Application  ' Declare an Instance of Visio.
   Dim docsObj As Visio.Documents     ' Documents collection of instance.
   Dim DocObj As Visio.Document       ' Document to work in.
   Dim stnObj As Visio.Document       ' Stencil that contains master.
   Dim mastObj As Visio.Master        ' Master to drop.
   Dim pagsObj As Visio.Pages         ' Pages collection of document.
   Dim pagObj As Visio.Page           ' Page to work in.
   Dim shpObj As Visio.Shape          ' Instance of master on page.

   ' Create an instance of Visio and create a document based on the
   ' Basic Diagram template. It doesn't matter if an instance of
   ' Visio is already running, CreateObject will run a new one.
   Set AppVisio = CreateObject("visio.application")

   Set docsObj = AppVisio.Documents

   ' Create a document based on the Basic Diagram template that
   ' automatically opens the Basic Shapes stencil.
   Set DocObj = docsObj.Add("Basic Diagram.vst")

   Set pagsObj = AppVisio.ActiveDocument.Pages

   ' A new document always has at least one page, whose index in the
   ' Pages collection is 1.
   Set pagObj = pagsObj.Item(1)

   Set stnObj = AppVisio.Documents("Basic Shapes.vss")
   Set mastObj = stnObj.Masters("Rectangle")

   ' Drop the rectangle in the approximate middle of the page.
   ' Coordinates passed with the Drop method are always inches.
   Set shpObj = pagObj.Drop(mastObj, 4.25, 5.5)

   ' Set the text of the rectangle.
   shpObj.Text = "This is some text."

   ' Save the drawing and quit Visio. The message pauses the program
   ' so you can see the Visio drawing before the instance closes.
   DocObj.SaveAs "MyDrawing.vsd"
   MsgBox "Drawing finished!", , "AutoVisio (OLE) Example"

   ' Quit Visio.
   AppVisio.Quit

   ' Clear the variable from memory.
   Set AppVisio = Nothing

End Sub

Verweise

Microsoft Visio-Website für Entwickler

Weitere Informationen zum Automatisieren von Visio finden Sie auf folgender Microsoft-Website:
MSDN Online Visio Development Center

NewsGroups

Folgende Peer-to-peer-Newsgroup steht Ihnen zur Verfügung, um Ihnen bei der Interaktion mit anderen Benutzern von Visual Basic for Applications zu helfen:
microsoft.public.de.vb
microsoft.public.de.vb.datenbank
microsoft.public.vb.ole.automation
microsoft.public.visio.developer.vba

Microsoft Knowledge Base

Weitere Informationen über die Verwendung des Beispielcodes aus diesem Artikel finden Sie im folgenden Artikel der Microsoft Knowledge Base:
297304 Visio2002: Ausführen von Beispielcode aus Knowledge Base-Artikeln

Office-Assistent

Weitere Informationen zur Verwendung von CreateObject finden Sie in der integrierten Hilfe des Visual Basic-Editors. Klicken Sie im Menü ? auf Microsoft Visual Basic-Hilfe, und geben Sie Createobject-Funktion in den Office- oder Hilfe-Assistenten ein. Klicken Sie danach auf Suchen, um das Thema anzuzeigen.

Weitere Informationen zur Verwendung von GetObject finden Sie in der integrierten Hilfe des Visual Basic-Editors. Klicken Sie im Menü ? auf Microsoft Visual Basic-Hilfe, und geben Sie Getobject-Funktion in den Office- oder Hilfe-Assistenten ein. Klicken Sie danach auf Suchen, um das Thema anzuzeigen.

Eigenschaften

Artikel-ID: 309603 - Geändert am: Dienstag, 11. März 2003 - Version: 1.0
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft Visio 2002 Standard Edition
  • Microsoft Visio 2002 Professional Edition
Keywords: 
kbhowto kbdta KB309603
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Ihr Feedback an uns

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com