Cómo utilizar la automatización OLE en Visio

Seleccione idioma Seleccione idioma
Id. de artículo: 309603 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

En esta página

INTRODUCCIÓN

Este artículo contiene información acerca de cómo utilizar Microsoft Visual Basic o Microsoft Visual Basic para aplicaciones (VBA) para automatizar Microsoft Office Visio2from otro programa de Microsoft Office.

Microsoft proporciona ejemplos de programación con fines ilustrativos únicamente, sin ninguna garantía tanto expresa como implícita. Esto incluye, entre otras, las garantías implícitas de comerciabilidad e idoneidad para un fin determinado. Este artículo se supone que está familiarizado con el lenguaje de programación que se muestra y con las herramientas que se utilizan para crear y depurar procedimientos. Los ingenieros de soporte técnico de Microsoft pueden explicarle la funcionalidad de un determinado procedimiento, pero no modificarán estos ejemplos para ofrecer mayor funcionalidad ni crearán procedimientos que cumplan sus requisitos específicos.

Información general acerca de automatización

Automatización (también denominada automatización OLE ) en Visual Basic es el proceso de controlar un programa de otro programa o herramienta de desarrollo externo. Puede automatizar cualquier programa que contiene un modelo de objetos de Visual Basic. Un modelo de objetos es una colección jerárquica de objetos que están disponibles el programa o la expone a Visual Basic.

Por ejemplo, el modelo de objetos de Microsoft Visio contiene objetos como:
  • Objeto de aplicación o global
  • Objeto de documento
  • Objeto Page
  • Objeto principal
  • Selection (objeto)
  • Objeto Shape
  • Objeto de ventana
Cada uno de estos objetos tiene un único conjunto de métodos y propiedades que son necesarias para trabajar con ellos en Visual Basic. Por ejemplo, un objeto Shape puede representar cualquier objeto en una página de dibujo de Visio que se puede seleccionar mediante el puntero. Por lo tanto, un objeto Shape puede ser una forma, un grupo, una guía, un control o un objeto desde otro programa que está vinculada, incrustada o importarse a un dibujo de Visio.

Introducción

Los ejemplos de código en este artículo muestran cómo controlar Visio desde Microsoft Office 2007, Microsoft Office 2003, Microsoft Office 2002, Microsoft Visual Basic 6.0, o desde cualquier programa que incluye una herramienta de desarrollo de Visual Basic. Para automatizar Visio, siga estos cuatro pasos principales:
  1. Agregar una referencia a la biblioteca de tipos de Visio.
  2. Declare una variable como un tipo de objeto de Visio (normalmente Visio.Application o Visio.Documents).
  3. Asignar el método GetObject o CreateObject a la variable de objeto declarado en el paso 2.
  4. Utilizar el objeto de Visio propiedades, métodos y objetos secundarios para automatizar Visio.

Paso 1: Agregue una referencia a la biblioteca de tipos Visio

Para agregar una referencia a la biblioteca de tipos de Visio mediante el uso de aplicaciones de Microsoft Office como Microsoft Office XP o de Office 2003, siga estos pasos:
  1. En Access, PowerPoint, Excel o Word, elija macros en el menú Herramientas y, a continuación, haga clic en Editor de Visual Basic .
  2. En el menú Herramientas , haga clic en referencias .

    Nota Para agregar la referencia mediante Microsoft Visual Basic 6.0, haga clic en referencias en el menú proyecto .
  3. En la lista de Referencias disponibles , haga clic para seleccionar una de las casillas de verificación siguientes, dependiendo de la versión de Visio que está utilizando:
    • Visio 2007, haga clic para activar la casilla Biblioteca de tipos de Microsoft Visio 12.0 .
    • Visio 2003, haga clic para activar la casilla de La biblioteca de tipos de Microsoft Visio 11.0 .
    • Para Visio 2002, haga clic para activar la casilla Biblioteca de tipos de Microsoft Visio 2002 .
Cuando se agrega la referencia de biblioteca de tipos de Visio de Microsoft, el programa obtiene acceso a Ayuda en pantalla de Microsoft Visio y el modelo de objetos de Visio. Puesto que las referencias se guardan en cada proyecto, tendrá que agregar la referencia de biblioteca de tipos de Visio para cada proyecto de Visual Basic o VBA que desea utilizar para automatizar Visio.

Paso 2: Declarar la variable de objeto

Para declarar una variable de una dimensión variable, objeto de Visio como un tipo de objeto específico de Visio, como Visio.Application, Visio.Documents o Visio.Page.

Declarar explícitamente que el tipo de objeto se denomina enlace porque la aplicación de controlador se conecta o se enlaza el objeto a la aplicación de Visio en tiempo de compilación en lugar de en tiempo de ejecución. Esto le proporciona acceso a listas automático de Visio y la Ayuda contextual y permite al código ejecutarse más eficazmente.

Para obtener más información acerca del enlace de objeto, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
138138Más tarde, ID, enlace tipos posibles en VB para aplicaciones
El argumento de Visual Basic de ejemplo siguiente declara la variable AppVisio como un objeto de tipo Visio.Application:

   Dim AppVisio as Visio.Application
				

Paso 3: Establecer la variable

Puede utilizar los siguientes dos métodos de Visual Basic para activar Visio:
  • CreateObject
  • GetObject
La principal diferencia es que el método CreateObject crea una nueva instancia de Visio, y el método GetObject utiliza una instancia de Visio ya en ejecución. También puede utilizar GetObject para establecer la variable de objeto a un documento de Visio específico.

El argumento de ejemplo siguiente establece la variable AppVisio a la aplicación Visio mediante el método CreateObject función:
   Dim AppVisio as Visio.Application

   Set AppVisio = CreateObject("Visio.Application")
				
en algunos casos, quizás desee utilizar una instancia de Visio existente si Visio ya se está ejecutando, pero crear una nueva instancia si Visio no se está ejecutando. Para ello, cree un controlador de error que utiliza el método CreateObject en caso de que el método GetObject falla, como se muestra en este ejemplo de código:
   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 también puede utilizar la función CreateObject para crear un Visio instancia es invisible. Por ejemplo:
Set AppVisio = CreateObject("Visio.InvisibleApp")
				
a continuación, se puede utilizar propiedad Visible del objeto Application para controlar si la instancia es visible.

Puede utilizar el objeto InvisibleApp con sólo la función CreateObject. Intenta utilizar con el GetObject función se producirá un error. El objeto InvisibleApp no está disponible en las versiones de Visio anteriores a Microsoft Visio 2000.

Paso 4: Usar los objetos de Visio, métodos y propiedades

Después de completar los pasos 1 a 3, puede utilizar el Visio variable de objeto para automatizar Visio.

La siguiente macro de ejemplo utiliza Automatización para iniciar Visio, cree un nuevo dibujo (documento) basado en la plantilla Basic Diagram, coloca un rectángulo, agrega texto y guarda el dibujo y sale de 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
				

Referencias

Sitios Web de Microsoft Visio Developer

Para obtener más información acerca de cómo automatizar Visio, visite el siguiente sitio Web de Microsoft:
http://msdn2.microsoft.com/en-us/office/aa905478.aspx
Para obtener más información sobre cómo desarrollar Microsoft Visio soluciones, visite el siguiente sitio Web de Microsoft:
http://msdn2.microsoft.com/en-us/library/aa217846(office.10).aspx

Kits de desarrollo de software de Visio

Para descargar el Kit de desarrollo de software de Visio 2002, visite el siguiente sitio Web de Microsoft:
http://www.microsoft.com/downloads/details.aspx?familyid=d2845e80-6634-4703-9ad9-7e440ede12d7&displaylang=en

Para descargar el Kit de desarrollo de software de Visio 2003, visite el siguiente sitio Web de Microsoft:
http://www.microsoft.com/downloads/details.aspx?familyid=557120bd-b0bb-46e7-936a-b8539898d44d&displaylang=en

Grupos de noticias

El siguiente grupo de noticias peer-to-peer está disponible para ayudarle a interactuar con otros usuarios de Visual Basic para aplicaciones:
Microsoft.public.vb.OLE.Automation
Microsoft.public.Visio.Developer.VBA

Ayuda de Visual Basic

Para obtener más información sobre cómo utilizar la función CreateObject , en el Editor de Visual Basic, haga clic en Ayuda de Microsoft Visual Basic en el menú Ayuda , escriba la función createobject en el cuadro Buscar y, a continuación, haga clic en Buscar para ver los temas que se devuelven.

Para obtener más información sobre cómo utilizar la función GetObject , en el Editor de Visual Basic, haga clic en Ayuda de Microsoft Visual Basic en el menú Ayuda , escriba función getobject en el cuadro Buscar y, a continuación, haga clic en Buscar para ver los temas que se devuelven.

Propiedades

Id. de artículo: 309603 - Última revisión: miércoles, 11 de abril de 2007 - Versión: 4.1
La información de este artículo se refiere 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
Palabras clave: 
kbmt kbautomation kbprogramming kbvba kbhowto KB309603 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 309603

Enviar comentarios

 

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