Jak v aplikaci Visio pomocí automatizace OLE

ÚVOD

Tento článek obsahuje informace o tom, jak použít k automatizaci aplikace Microsoft Office Visio2from Microsoft Visual Basic nebo Microsoft Visual Basic for Applications (VBA) jiné aplikace sady Microsoft Office.

Společnost Microsoft poskytuje ukázky programování pouze pro ilustraci bez žádné záruky výslovně uvedené nebo odvozené. To zahrnuje, ale není omezen pouze na předpokládané záruky obchodovatelnosti nebo vhodnosti pro určitý účel. Tento článek předpokládá, že jste obeznámeni s programovacím jazykem, který je předmětem ukázky a s nástroji, které slouží k vytvoření a ladění skriptu. Pracovníci podpory společnosti Microsoft mohou pomoci vysvětlit funkce určitého postupu, nemohou však následující příklady rozšířit o další funkce nebo vytvářet postupy podle vašich konkrétních požadavků.
zpět na horní

Přehled automatizace

Automatizace (také nazývané automatizace OLE) v jazyce Visual Basic je proces řízení jeden program z jiného programu nebo externí vývojový nástroj. Jakýkoli program, který obsahuje Visual Basic objektového modelulze automatizovat. Objektový model je hierarchický kolekce objektů, které jsou k dispozici programu nebo vystaven do jazyka Visual Basic.

Model objektu aplikace Microsoft Visio obsahuje například objekty jako například:
  • Aplikace, globální objekt
  • Objekt dokumentu
  • Objekt na stránce
  • Hlavní objekt
  • Výběr objektu
  • Objekt tvaru
  • Objekt okno
Každý z těchto objektů má jedinečnou sadu metod a vlastností, které jsou nutné pro práci s nimi v jazyce Visual Basic. Například obrazec objekt může představovat libovolný objekt na stránce výkresu aplikace Visio, můžete vybrat pomocí ukazatele myši. Proto tvar objektu může být obrazec, skupinu, vodítko, ovládací prvek nebo vložený objekt z jiného programu, který je propojen, nebo importovat do výkresu aplikace Visio.

zpět na horní

Začínáme

Ukázky kódu v tomto článku ukazují, jak řídit Visio z aplikace Microsoft Office 2007, Microsoft Office 2003, Microsoft Office 2002, Microsoft Visual Basic 6.0 nebo z libovolného programu, který zahrnuje vývojový nástroj jazyka Visual Basic. K automatizaci aplikace Visio, postupujte čtyři hlavní takto:
  1. Přidejte odkaz na knihovnu typů Visio.
  2. Deklarujte proměnnou jako typ objektu Visio (obvykle Visio.Application nebo Visio.Documents).
  3. Metody GetObject nebo CreateObject přiřadíte proměnné objektu, který jste deklarovali v kroku 2.
  4. Automatizace aplikace Visio pomocí podřízené objekty, metody a vlastnosti objektu aplikace Visio.
zpět na horní

Krok 1: Přidáte odkaz na knihovnu typů Visio

Chcete-li přidat odkaz na knihovnu typů Visio pomocí aplikací Microsoft Office, například Microsoft Office XP nebo Office 2003, postupujte takto:
  1. V aplikaci Access, PowerPoint, Excel nebo Word v nabídce Nástroje přejděte na příkaz makra a klepněte na příkaz Editor jazyka Visual Basic.
  2. V nabídce Nástroje klepněte na odkazy.

    Poznámka: Chcete-li přidat odkaz pomocí Microsoft Visual Basic 6.0, klepněte na příkaz odkazy v nabídce projekt .
  3. V seznamu Dostupné odkazyklepnutím vyberte jednu z následujících zaškrtávacích políček v závislosti na verzi aplikace Visio, kterou používáte:
    • Pro aplikaci Visio 2007 klepnutím zaškrtněte políčko Knihovna typů aplikace Microsoft Visio 12.0 .
    • Visio 2003 klepněte na políčko Knihovnu Microsoft Visio 11.0 typů .
    • Pro aplikaci Visio 2002 klepnutím zaškrtněte políčko Knihovna typů aplikace Microsoft Visio 2002 .
Když přidáte odkaz na knihovnu typů Microsoft Visio, programu a k dispozici Online nápověda aplikace Microsoft Visio objektového modelu aplikace Visio. Protože odkazy jsou uloženy v každém projektu, je nutné přidat odkaz na knihovnu typů Visio pro každý projekt Visual Basic nebo kódu jazyka VBA, který chcete použít k automatizaci aplikace Visio.

zpět na horní

Krok 2: Deklarování proměnné objektu

Chcete-li deklarovat proměnnou proměnné, dimenze objektu aplikace Visio jako zvláštní typ objektu aplikace Visio, například Visio.Application, Visio.Documents nebo Visio.Page.

Explicitně deklarovat, že typ objektu se nazývá časná vazba , protože spojuje aplikace řadiče nebo sváže objektu aplikace Visio v době kompilace místo za běhu. To umožňuje přístup k aplikaci Visio automatické seznamy a kontextovou nápovědu a umožňuje kódu efektivnější chod.

Další informace o objektu vazby klepněte na následující číslo článku databáze Microsoft Knowledge Base:
138138 pozdě, časná vazba typy ID možná v jazyce Visual Basic pro aplikace

Následující ukázkový Visual Basic argument deklaruje proměnnou AppVisio jako objekt typu Visio.Application:

   Dim AppVisio as Visio.Application
zpět na horní

Krok 3: Nastavení proměnné

Následující dvě metody jazyka Visual Basic můžete použít k aktivaci aplikace Visio:
  • Metoda CreateObject
  • Funkce GetObject
Hlavní rozdíl je, že metoda CreateObject vytvoří novou instanci aplikace Visio a metody GetObject používá již spuštěnou instanci aplikace Visio. GetObject můžete použít také k nastavení určitého dokumentu aplikace Visio objektové proměnné.

Následující ukázkový argument nastaví proměnnou AppVisio do aplikace Visio pomocí funkce CreateObject:
   Dim AppVisio as Visio.Application
Set AppVisio = CreateObject("Visio.Application")

V některých případech můžete chtít použít existující instance aplikace Visio, Visio již spuštěna, ale vytvořit novou instanci, pokud není spuštěna aplikace Visio. Chcete-li to provést, vytvořte obslužnou rutinu chyb, která používá metodu CreateObject v případě, že metody GetObject se nezdaří, jak je znázorněno tento ukázkový kód:
   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


Poznámka: Funkci CreateObject můžete také použít k vytvoření instance aplikace Visio, který je neviditelný. Například:
Set AppVisio = CreateObject("Visio.InvisibleApp")
Poté můžete objekt Application vlastnost Visible ovládacího prvku zda instance je zobrazen.

Pomocí objektu InvisibleApp pomocí funkce CreateObject. Pokusy o pomocí funkce GetObject se nezdaří. Objekt InvisibleApp není k dispozici ve verzích starších než aplikace Microsoft Visio 2000 aplikace Visio.

zpět na horní

Krok 4: Používejte objekty, metody a vlastnosti aplikace Visio

Po dokončení kroků 1 až 3 slouží k automatizaci aplikace Visio Visio objektové proměnné.

Následující ukázkové makro automatizace používá ke spuštění aplikace Visio, vytvořte nový výkres (dokument) na základě šablony základní Diagram, klesne obdélník, přidá nějaký text a uloží výkresu a ukončí aplikace 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

zpět na horní

Odkazy

Microsoft Visio Developer webové servery

Další informace o tom, jak automatizovat Visio naleznete na následujícím webu společnosti Microsoft:Další informace o vývoji řešení aplikace Microsoft Visio naleznete na následujícím webu společnosti Microsoft:

Aplikace Visio Software Development Kit

Chcete-li stáhnout aplikaci Visio 2002 Software Development Kit, naleznete na následujícím webu společnosti Microsoft:
Chcete-li stáhnout aplikaci Visio 2003 Software Development Kit, naleznete na následujícím webu společnosti Microsoft:

Diskusní skupiny

K dispozici vám pomohou komunikovat s ostatními uživateli aplikace Visual Basic for Applications je následujících diskusních skupin typu peer-to-peer:
microsoft.public.vb.ole.automation
microsoft.public.visio.developer.vba

Nápověda pro Visual Basic

Další informace o použití funkce CreateObject v editoru jazyka Visual Basic v nabídce Nápověda klepněte na příkaz Nápověda pro Microsoft Visual Basic , do pole Hledat zadejte funkce createobject a potom klepněte na tlačítko Hledat zobrazíte témata, která jsou vráceny.

Další informace o použití funkce GetObject v editoru jazyka Visual Basic v nabídce Nápověda klepněte na příkaz Nápověda pro Microsoft Visual Basic , funkce getobject zadejte do pole Hledat a potom klepněte na tlačítko Hledat zobrazíte témata, která jsou vráceny.

zpět na horní
Vlastnosti

ID článku: 309603 - Poslední kontrola: 20. 1. 2017 - Revize: 1

Váš názor