Visio2002: Como Usar a Automação de OLE com o Visio

Traduções deste artigo Traduções deste artigo
ID do artigo: 309603 - Exibir os produtos aos quais esse artigo se aplica.
Expandir tudo | Recolher tudo

Neste artigo

Sumário

Este artigo descreve e mostra como automatizar o Microsoft Visio 2002 a partir de um outro programa usando o Visual Basic ou o Visual Basic for Applications.

Mais Informações

A Microsoft fornece exemplos de programação apenas para ilustração, sem garantia explícita ou implícita, incluindo, mas sem limitar a, as garantias de comercialização e/ou adequação para uma finalidade em especial. Este artigo pressupõe que você conhece a linguagem de programação que está sendo demonstrada e também as ferramentas usadas para criar e depurar procedimentos. Os profissionais de suporte da Microsoft podem ajudar a explicar a funcionalidade de um procedimento, mas eles não modificarão esses exemplos para fornecer funcionalidades adicionais ou construir procedimentos para atender às suas necessidades. Se a sua experiência com programação for limitada, entre em contato com um Parceiro Certificado Microsoft ou com a linha paga de consultas da Microsoft no número (800) 936-5200. Para obter informações adicionais sobre Parceiros Certificados da Microsoft, favor visitar o seguinte site da Web da Microsoft:
http://www.microsoft.com/partner/referral/
Para obter informações adicionais sobre as opções de suporte disponíveis e sobre como entrar em contato com a Microsoft, visite o seguinte site da Web:
http://support.microsoft.com/default.aspx?scid=fh;EN-US;CNTACTMS

O que é Automação?

Automação (também chamada de Automação de OLE), no Visual Basic, é o processo de controlar um programa a partir de um outro programa ou de uma ferramenta de desenvolvimento externa. Você pode automatizar qualquer programa que contenha um modelo de objeto do Visual Basic. Modelo de objeto é uma coleção dos objetos do programa disponíveis ou acessíveis ao Visual Basic.

Por exemplo, o modelo de objeto do Microsoft Visio contém objetos como:
  • Aplicativo/objeto global
  • Objeto de documento
  • Objeto de página
  • Objeto mestre
  • Objeto de seleção
  • Objeto de forma
  • Objeto de janela
Cada um desses objetos possui um conjunto único de métodos e propriedades necessários à sua manipulação no Visual Basic. Por exemplo, um objeto de forma pode representar qualquer coisa em uma página de desenho do Visio que pode ser selecionada usando-se o ponteiro ? uma forma, um grupo, uma guia, um controle, ou um objeto de um outro aplicativo vinculado, inserido ou importado para um desenho do Visio.

Iniciando

Os exemplos de código deste artigo mostram como controlar o Microsoft Visio 2002 a partir do Microsoft Access 2002, do Microsoft Excel 2002, do Microsoft PowerPoint 2002, do Microsoft Word 2002, do Microsoft Visual Basic 6.0, ou de um programa que tenha uma ferramenta de desenvolvimento do Visual Basic.

Há quatro passos principais para automatizar o Visio 2002:
  1. Adicione uma referência à Biblioteca de tipos do Microsoft Visio 2002.
  2. Declare uma variável como um tipo de objeto do Visio (normalmente, Visio.Application ou Visio.Documents).
  3. Atribua os métodos GetObject ou CreateObject à variável de objeto declarada por você no passo 2.
  4. Use as propriedades, métodos e objetos filhos do Visio para automatizar o programa.

Passo 1: Adicionar uma Referência à Biblioteca de Tipos do Visio

Para adicionar uma referência à Biblioteca de tipos do Microsoft Visio 2002 usando o Access 2002, o PowerPoint 2002, o Excel 2002, ou o Word 2002 siga estes passos:
  1. No Access, no PowerPoint, no Excel ou no Word, aponte para Macros no menu Ferramentas, e clique em Editor do Visual Basic.
  2. No menu Ferramentas, clique em Referências.

    NOTA: Para adicionar a referência usando o Microsoft Visual Basic 6.0, clique em Referências no menu Projeto.
  3. Na lista de Referências disponíveis, marque a caixa de seleção Microsoft Visio 2002 Type Library.
Adicionar a referência Microsoft Visio 2002 Type Library permite que o seu programa acesse a Ajuda On-line do Microsoft Visio e o modelo de objeto do Visio. Como as referências são salvas em cada projeto, você precisará adicionar a referência da biblioteca de tipos do Visio para cada projeto do Visual Basic ou do Visual Basic for Applications com o qual você deseja automatizar o Visio.

Passo 2: Declarar a Variável de Objeto

Para declarar uma variável de objeto do Visio, defina uma variável como um determinado tipo de objeto do Visio como, por exemplo, Visio.Application, Visio.Documents ou Visio.Page.

Declarar o tipo de objeto explicitamente é chamado de vinculação anterior porque o aplicativo do controlador conecta ou vincula o objeto ao Visio durante a compilação, e não durante a execução. Isso lhe dá acesso às listas automáticas do Visio e à Ajuda Contextual, além de permitir que o código seja executado de forma mais eficiente.

Para obter informações adicionais sobre a vinculação de objetos, clique no número abaixo para visualizar o artigo na Base de Dados de Conhecimento da Microsoft:
138138 INFO: Late, ID, Early Binding Types Possible in VB for Apps
O seguinte argumento de Visual Basic de exemplo declara a variável AppVisio como um objeto do tipo Visio.Application:

   Dim AppVisio as Visio.Application
				

Passo 3: Definir a Variável

Há dois métodos do Visual Basic que podem ser usados para ativar o Visio: CreateObject e GetObject. A principal diferença é que o método CreateObject cria uma nova instância do Visio, e o método GetObject usa uma instância já em execução do Visio. Você também pode usar o GetObject para definir a sua variável de objeto para um determinado documento do Visio.

O seguinte argumento de exemplo define a variável AppVisio para o aplicativo Visio usando a função CreateObject:
   Dim AppVisio as Visio.Application

   Set AppVisio = CreateObject("Visio.Application")
				
Em alguns casos, talvez você queira usar uma instância já existente do Visio, caso ele ainda não esteja em execução, mas criar uma nova instância no caso dele não estar sendo executado. Para fazer isso, crie um manipulador de erros que use o método CreateObject no caso do método GetObject falhar, como mostra o código de exemplo a seguir:
   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: Você também pode usar a função CreateObject para criar uma instância invisível do Visio. Por exemplo:
Set AppVisio = CreateObject("Visio.InvisibleApp")
				
Assim, você pode usar a propriedade Visible do objeto Application para controlar a visibilidade da instância.

Você pode usar o objeto InvisibleApp apenas com a função CreateObject. As tentativas de usá-lo com a função GetObject não darão certo. O objeto InvisibleApp não está disponível em versões do Visio anteriores à versão Microsoft Visio 2000.

Passo 4: Usar os Objetos, Métodos e Propriedades do Visio

Depois de completar os passos de 1 a 3, você pode usar a variável de objeto do Visio para automatizá-lo.

A seguinte macro de exemplo usa a automatização para iniciar o Visio, criar um novo desenho (documento) com base no modelo de diagrama, fazer um retângulo, adicionar um texto, salvar o desenho e fechar o 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

Site do Microsoft Visio Developer na Web

Para obter informações adicionais sobre como automatizar o Visio, acesse o seguinte site da Microsoft na Web:
MSDN Online Visio Development Center

NewsGroups

O seguinte grupo de notícias não-hierárquicos está disponível para lhe ajudar a interagir com outros usuários do Visual Basic for Applications:
microsoft.public.vb.ole.automation
microsoft.public.visio.developer.vba

Base de Dados de Conhecimento

Para obter informações adicionais sobre como usar o código de exemplo deste artigo, clique no número abaixo para visualizar o artigo na Base de Dados de Conhecimento da Microsoft:
297304 Visio2002: How to Run Sample Code from Knowledge Base Articles

Assistente do Office

Para obter mais informações sobre como usar o CreateObject, no Editor do Visual Basic, clique na Ajuda do Microsoft Visual Basic no menu Ajuda, digite função createobject no Assistente do Office ou o Assistente de resposta, e clique em Pesquisar para visualizar o tópico.

Para obter mais informações sobre como usar o GetObject, no Editor do Visual Basic, clique na Ajuda do Microsoft Visual Basic no menu Ajuda, digite função getobject no Assistente do Office ou o Assistente de resposta, e clique em Pesquisar para visualizar o tópico.

Propriedades

ID do artigo: 309603 - Última revisão: segunda-feira, 30 de junho de 2003 - Revisão: 1.0
A informação contida neste artigo aplica-se a:
  • Microsoft Visio 2002 Standard Edition
  • Microsoft Visio 2002 Professional Edition
Palavras-chave: 
kbhowto KB309603

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