Come utilizzare l'automazione OLE in Visio

INTRODUZIONE

In questo articolo contiene informazioni su come utilizzare Microsoft Visual Basic o Microsoft Visual Basic, Applications Edition (VBA) per automatizzare Microsoft Office Visio2from un altro programma di Microsoft Office.

Microsoft fornisce esempi di programmazione a scopo puramente illustrativo, senza alcuna garanzia espressa o implicita. Ciò include, ma non limitato a, le garanzie implicite di commerciabilità o idoneità per uno scopo particolare. In questo articolo si presuppone che si abbia familiarità con il linguaggio di programmazione in questione e gli strumenti utilizzati per creare ed eseguire la procedura di debug. I tecnici del supporto Microsoft possono spiegare la funzionalità di una particolare procedura, ma in nessun caso possono modificare questi esempi per fornire funzionalità aggiuntive o creare procedure atte a soddisfare specifiche esigenze.
Torna all'inizio

Panoramica dell'automazione

Automazione (anche nota come automazione OLE) in Visual Basic è il processo di controllo di un programma da un altro programma o strumento di sviluppo esterno. È possibile automatizzare qualsiasi programma che contiene un modello a oggettidi Visual Basic. Un modello a oggetti è un insieme gerarchico di oggetti disponibili del programma o esposti a Visual Basic.

Ad esempio, il modello a oggetti di Microsoft Visio contiene oggetti quali:
  • Oggetto di applicazione globale
  • Oggetto Document
  • Oggetto Page
  • Oggetto master
  • Oggetto Selection
  • Oggetto Shape
  • Oggetto Window
Ognuno di questi oggetti dispone di un set univoco di metodi e proprietà che devono essere utilizzati in Visual Basic. Ad esempio, un oggetto Shape può rappresentare qualsiasi oggetto su una pagina di disegno di Visio che è possibile selezionare utilizzando il puntatore del mouse. Pertanto, un oggetto Shape può essere una forma, un gruppo, una Guida, un controllo o un oggetto da un altro programma che è collegato, incorporati o importato in un disegno di Visio.

Torna all'inizio

Guida introduttiva

Gli esempi di codice in questo articolo viene illustrato come controllare Visio da Microsoft Office 2007, Microsoft Office 2003, Microsoft Office 2002, Microsoft Visual Basic 6.0, o da qualsiasi programma che include uno strumento di sviluppo di Visual Basic. Per automatizzare Visio, seguire questi quattro passaggi principali:
  1. Aggiungere un riferimento alla libreria dei tipi di Visio.
  2. Dichiarare una variabile come tipo di oggetto Visio (in genere Visio. Application o Visio.Documents).
  3. Assegnare la variabile oggetto dichiarata nel passaggio 2, quindi il metodo GetObject o CreateObject.
  4. Utilizzare le proprietà, metodi e gli oggetti figlio dell'oggetto Visio per automatizzare Visio.
Torna all'inizio

Passaggio 1: Aggiungere un riferimento alla libreria dei tipi di Visio

Per aggiungere un riferimento alla libreria dei tipi di Visio utilizzando applicazioni di Microsoft Office, ad esempio Microsoft Office XP o Office 2003, attenersi alla seguente procedura:
  1. In Access, PowerPoint, Excel o Word, scegliere macro dal menu Strumenti e quindi fare clic su Visual Basic Editor.
  2. Scegliere riferimentidal menu Strumenti .

    Nota: Per aggiungere il riferimento utilizzando Microsoft Visual Basic 6.0, scegliere riferimenti dal menu progetto .
  3. Nell'elenco dei Riferimenti disponibili, fare clic per selezionare una delle seguenti caselle di controllo, a seconda della versione di Visio che si sta utilizzando:
    • Per Visio 2007, fare clic per selezionare la casella di controllo di Microsoft Visio 12.0 Type Library .
    • Per Visio 2003, fare clic per selezionare la casella di controllo di Microsoft Visio 11.0 Type Library .
    • Per Visio 2002, fare clic per selezionare la casella di controllo di Microsoft Visio 2002 Type Library .
Quando si aggiunge il riferimento della libreria dei tipi di Microsoft Visio, il programma di accedere a Guida in linea di Microsoft Visio e modello a oggetti di Visio. Poiché i riferimenti vengono salvati in ogni progetto, è necessario aggiungere il riferimento della libreria dei tipi di Visio per ogni progetto di Visual Basic o VBA che si desidera utilizzare per automatizzare Visio.

Torna all'inizio

Passaggio 2: Dichiarare la variabile oggetto

Per dichiarare una variabile di una quota variabile, oggetto di Visio come un tipo di oggetto specifico di Visio, Visio. Application, Visio.Documents o Visio.

Dichiarare in modo esplicito che il tipo di oggetto viene definito associazione anticipata , perché l'applicazione del controller si connette o si associa l'oggetto per l'applicazione Visio in fase di compilazione anziché in fase di esecuzione. Ciò consente di accedere agli elenchi di auto di Visio e Guida sensibile al contesto e consente di eseguire in modo più efficiente il codice.

Per ulteriori informazioni sull'associazione di oggetti, fare clic sul numero riportato di seguito per visualizzare l'articolo della Microsoft Knowledge Base:
138138 in ritardo, ID, associazione anticipata tipi possibili in VB per applicazioni

Argomento di Visual Basic di esempio riportato di seguito viene dichiarata la variabile AppVisio come un oggetto di tipo Visio. Application:

   Dim AppVisio as Visio.Application
Torna all'inizio

Passaggio 3: Impostare la variabile

È possibile utilizzare i seguenti due metodi di Visual Basic per attivare Visio:
  • CreateObject
  • GetObject
La differenza principale è che il metodo CreateObject crea una nuova istanza di Visio e il metodo GetObject utilizza un'istanza di Visio già in esecuzione. È inoltre possibile utilizzare GetObject per impostare la variabile oggetto a uno specifico documento di Visio.

L'argomento di esempio seguente imposta la variabile AppVisio per l'applicazione di Visio utilizzando la funzione CreateObject:
   Dim AppVisio as Visio.Application
Set AppVisio = CreateObject("Visio.Application")

In alcuni casi, è possibile utilizzare un'istanza di Visio esistente se Visio è già in esecuzione, ma creare una nuova istanza se Visio non è in esecuzione. A tale scopo, creare un gestore errori che utilizza il metodo CreateObject nel caso in cui il metodo GetObject non riesce, come illustrato in questo esempio di codice:
   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


Nota: È inoltre possibile utilizzare la funzione CreateObject per creare un'istanza di Visio che è invisibile. Per esempio:
Set AppVisio = CreateObject("Visio.InvisibleApp")
È quindi possibile utilizzare proprietà di visibilità dell'oggetto al controllo se l'istanza è visibile.

È possibile utilizzare l'oggetto InvisibleApp con solo la funzione CreateObject. Tenta di utilizzarlo con la funzione GetObject avrà esito negativo. Oggetto InvisibleApp non è disponibile nelle versioni di Visio precedenti a Microsoft Visio 2000.

Torna all'inizio

Passaggio 4: Utilizzare oggetti, metodi e proprietà di Visio

Dopo aver completato i passaggi da 1 a 3, è possibile utilizzare la variabile di oggetto di Visio per automatizzare Visio.

La seguente macro di esempio utilizza l'automazione per avviare Visio, creare un nuovo disegno (documento) basato sul modello Diagramma base, rilasci un rettangolo, viene aggiunto del testo e Salva il disegno e consente di uscire da 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

Torna all'inizio

Riferimenti

Siti Web di Microsoft Visio Developer

Per ulteriori informazioni su come automatizzare Visio, visitare il seguente sito Web Microsoft:Per ulteriori informazioni su come sviluppare soluzioni di Microsoft Visio, visitare il seguente sito Web Microsoft:

Kit di sviluppo Software di Visio

Per scaricare il Software Development Kit per Visio 2002, visitare il seguente sito Web Microsoft:
Per scaricare il Software Development Kit per Visio 2003, visitare il seguente sito Web Microsoft:

Newsgroup

Il seguente newsgroup peer-to-peer è disponibile per agevolare l'interazione con altri utenti di Visual Basic, Applications Edition:
microsoft.public.vb.ole.automation
microsoft.public.visio.developer.vba

Guida in linea di Visual Basic

Per ulteriori informazioni su come utilizzare la funzione CreateObject , in Visual Basic Editor scegliere Guida in linea di Microsoft Visual Basic dal menu ? , digitare funzione createobject nella casella di ricerca e quindi fare clic su Cerca per visualizzare gli argomenti restituiti.

Per ulteriori informazioni su come utilizzare la funzione GetObject , in Visual Basic Editor scegliere Guida in linea di Microsoft Visual Basic dal menu ? , digitare funzione getobject nella casella di ricerca e quindi fare clic su Cerca per visualizzare gli argomenti restituiti.

Torna all'inizio
Proprietà

ID articolo: 309603 - Ultima revisione: 30 gen 2017 - Revisione: 1

Feedback