Como utilizar a automatização OLE no Visio

Traduções de Artigos Traduções de Artigos
Artigo: 309603 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Nesta página

INTRODUÇÃO

Este artigo contém informações sobre como utilizar o Microsoft Visual Basic ou o Microsoft Visual Basic for Applications (VBA) para automatizar o Microsoft Office Visio2from noutro programa do Microsoft Office.

A Microsoft fornece exemplos de programação apenas, para fins sem garantia expressa ou implícita. Isto inclui, mas não está limitado a, as garantias implícitas de comercialização ou adequação a um fim específico. Este artigo pressupõe que está familiarizado com a linguagem de programação apresentada e as ferramentas que são utilizadas para criar e depurar procedimentos. Os técnicos de suporte da Microsoft podem ajudar a explicar a funcionalidade de um determinado procedimento, mas não modificarão estes exemplos para proporcionarem funcionalidades adicionais nem criarão procedimentos adaptados às necessidades específicas do utilizador.

Descrição geral de automatização

Automatização (também designada por automatização OLE ) no Visual Basic é o processo de controlar um programa a partir de outro programa ou ferramenta de desenvolvimento externo. É possível automatizar qualquer programa que contém um de Visual Basic modelo de objecto . Um modelo de objecto é uma colecção hierárquica de objectos que estão disponíveis do programa ou exposto do Visual Basic.

Por exemplo, o modelo de objecto para o Microsoft Visio contém objectos tais como:
  • Objecto de aplicação/global
  • Objecto de documento
  • Objecto de página
  • Objecto principal
  • Objecto da selecção
  • Forma objecto
  • Objecto de janela
Cada um destes objectos tem um conjunto exclusivo de métodos e propriedades que são necessárias para trabalhar com eles no Visual Basic. Por exemplo, um objecto de forma pode representar qualquer objecto numa página de desenho do Visio que pode seleccionar utilizando o ponteiro. Por conseguinte, um objecto de forma pode ser uma forma, um grupo, uma guia, um controlo ou um objecto de outro programa que está ligado, incorporados ou importados para um desenho do Visio.

Introdução

Os exemplos de código neste artigo demonstram como controlar o Visio a partir do Microsoft Office 2007, Microsoft Office 2003, Microsoft Office 2002, Microsoft Visual Basic 6.0 ou de qualquer programa que inclui uma ferramenta de desenvolvimento do Visual Basic. Para automatizar o Visio, siga estes quatro passos principais:
  1. Adicione uma referência à biblioteca do tipo Visio.
  2. Declarar uma variável como um tipo de objecto do Visio (normalmente Visio.Application ou Visio.Documents).
  3. Atribua o método GetObject ou CreateObject a variável de objecto que declarou no passo 2.
  4. Utilize propriedades, métodos e objectos subordinados do objecto do Visio para automatizar o Visio.

Passo 1: Adicionar uma referência Library o tipo do Visio

Para adicionar uma referência à biblioteca de tipos do Visio utilizando aplicações do Microsoft Office como o Microsoft Office XP ou Office 2003, siga estes passos:
  1. No Access, PowerPoint, Excel ou Word, aponte para macro no menu Ferramentas e, em seguida, clique em Editor do Visual Basic .
  2. No menu Ferramentas , clique em References .

    Nota Para adicionar a referência utilizando o Microsoft Visual Basic 6.0, clique em References no menu projecto .
  3. Na lista de Referências disponíveis , clique para seleccionar uma das seguintes caixas de verificação, dependendo da versão do Visio que está a utilizar:
    • Para o Visio 2007, clique para seleccionar a caixa de verificação Microsoft Visio 12.0 biblioteca de tipos .
    • Para o Visio 2003, clique para seleccionar a caixa de verificação Microsoft Visio 11.0 biblioteca de tipos .
    • Para o Visio 2002, clique para seleccionar a caixa de verificação Microsoft Visio 2002 biblioteca de tipos .
Quando adiciona a referência do Microsoft Visio Type Library, o programa pode aceder ajuda online do Microsoft Visio e o modelo de objectos do Visio. Uma vez que as referências são guardadas em cada projecto, terá de adicionar a referência de biblioteca de tipos do Visio para cada projecto de Visual Basic ou VBA que pretende utilizar para automatizar o Visio.

Passo 2: Declarar a variável de objecto

Para declarar uma variável de uma dimensão de variável de objecto do Visio como um tipo específico de objecto do Visio, como Visio.Application, Visio.Documents ou Visio.Page.

Declarar explicitamente que o tipo de objecto é denominado ligação antecipada porque a aplicação de controlador estabelece ligação ou associa o objecto para a aplicação Visio durante a compilação em vez de no tempo de execução. Isto concede acesso às listas de automática do Visio e ajuda sensível ao contexto e permite que o código para executar mais eficientemente.

Para obter mais informações sobre a ligação de objecto, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
138138Mais tarde, o ID, ligação antecipada tipos possíveis no VB para aplicações
O argumento de Visual Basic do exemplo seguinte declara a variável AppVisio como um objecto do tipo Visio.Application:

   Dim AppVisio as Visio.Application
				

Passo 3: Definir a variável

Pode utilizar os seguintes dois métodos de Visual Basic para activar o Visio:
  • CreateObject
  • GetObject
A principal diferença é que o método CreateObject cria uma nova instância do Visio e o método GetObject utiliza uma instância do Visio já em execução. Pode também utilizar GetObject para definir a variável de objecto para um documento específico do Visio.

O argumento de exemplo seguinte define a variável AppVisio à aplicação do Visio utilizando o CreateObject função:
   Dim AppVisio as Visio.Application

   Set AppVisio = CreateObject("Visio.Application")
				
em alguns casos, poderá pretender utilizar uma instância do Visio existente se o Visio está já a ser executado, mas criar uma nova instância se o Visio não estiver em execução. Para o fazer, crie um processador de erro que utiliza o método CreateObject no caso do método GetObject falha, conforme demonstrado neste código de exemplo:
   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: pode também utilizar a função CreateObject para criar um Visio instância que é invisível. Por exemplo:
Set AppVisio = CreateObject("Visio.InvisibleApp")
				
pode utilizar, em seguida, a propriedade visível do objecto Application para controlar se a instância é visível.

Pode utilizar o objecto InvisibleApp com apenas a função CreateObject. Tenta utilizar com GetObject função irá falhar. O objecto InvisibleApp não está disponível nas versões do Visio anteriores ao Microsoft Visio 2000.

Passo 4: Utilizar os objectos do Visio, métodos e propriedades

Depois de concluir os passos 1 a 3, pode utilizar o Visio variável de objecto para automatizar o Visio.

A macro de exemplo seguinte utiliza a automatização para iniciar o Visio, crie um novo desenho (documento) baseado no modelo de diagrama de base, interrompe um rectângulo, adiciona algum texto, guarda o desenho e sai do 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
				

Referências

Microsoft Visio para programadores Web sites

Para obter mais informações sobre como automatizar o Visio, visite o seguinte Web site da Microsoft:
http://msdn2.microsoft.com/en-us/office/aa905478.aspx
Para mais informações sobre como desenvolver o Microsoft Visio soluções, visite o seguinte Web site da Microsoft:
http://msdn2.microsoft.com/en-us/library/aa217846(office.10).aspx

Visio Software Development Kits

Para transferir o Visio 2002 Software Development Kit, visite o seguinte Web site da Microsoft:
http://www.microsoft.com/downloads/details.aspx?familyid=d2845e80-6634-4703-9ad9-7e440ede12d7&displaylang=en

Para transferir o Visio 2003 Software Development Kit, visite o seguinte Web site da Microsoft:
http://www.microsoft.com/downloads/details.aspx?familyid=557120bd-b0bb-46e7-936a-b8539898d44d&displaylang=en

NewsGroups

O newsgroup peer-to-peer seguinte está disponível para o ajudar a interagir com outros utilizadores do Visual Basic for Applications:
Microsoft.public.VB.OLE.Automation
Microsoft.public.Visio.Developer.VBA

Ajuda do Visual Basic

Para mais informações sobre como utilizar a função CreateObject no Editor do Visual Basic, clique em Ajuda do Microsoft Visual Basic no menu Ajuda escreva codificação função na caixa Procurar e, em seguida, clique em Procurar para visualizar os tópicos devolvidos.

Para obter mais informações sobre como utilizar a função GetObject no Editor do Visual Basic, clique em Ajuda do Microsoft Visual Basic no menu Ajuda escreva codificação função na caixa Procurar e, em seguida, clique em Procurar para visualizar os tópicos devolvidos.

Propriedades

Artigo: 309603 - Última revisão: 11 de abril de 2007 - Revisão: 4.1
A informação contida neste artigo aplica-se a:
  • Microsoft Office Visio Standard 2007
  • Microsoft Office Visio Professional 2007
  • Microsoft Office Visio Standard 2003
  • Microsoft Office Visio Professional 2003
  • Microsoft Visio 2002 Standard Edition
  • Microsoft Visio 2002 Professional Edition
Palavras-chave: 
kbmt kbautomation kbprogramming kbvba kbhowto KB309603 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 309603

Submeter comentários

 

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