Comment faire pour utiliser OLE automation dans Visio

Traductions disponibles Traductions disponibles
Numéro d'article: 309603 - Voir les produits auxquels s'applique cet article
Agrandir tout | Réduire tout

Sommaire

INTRODUCTION

Cet article contient des informations sur l'utilisation de Microsoft Visual Basic ou Microsoft Visual Basic pour Applications (VBA) pour automatiser Microsoft Office Visio2from un autre programme Microsoft Office.

Microsoft fournit des exemples de programmation pour illustration uniquement, sans garantie explicite ou implicite. Cela inclut, mais n'est pas limité aux garanties implicites de qualité marchande ou d'adéquation à un usage particulier. Cet article suppose que vous êtes familiarisé avec le langage de programmation présenté et les outils qui sont utilisés pour créer et déboguer des procédures. Les techniciens du support technique Microsoft peuvent vous expliquer les fonctionnalités d'une procédure particulière, mais ils ne sont pas modifier les exemples en vue de fournir des fonctionnalités supplémentaires ou de créer des procédures répondant à vos besoins spécifiques.

Vue d'ensemble de l'automation

Automation (également appelée OLE automation ) dans Visual Basic consiste à contrôler un programme d'un autre programme ou outil de développement externe. Vous pouvez automatiser n'importe quel programme qui contient un modèle d'objet de Visual Basic. Un modèle d'objet est une collection hiérarchique d'objets qui sont disponibles du programme ou exposés à Visual Basic.

Par exemple, le modèle objet pour Microsoft Visio contient objets tels que :
  • Objet d'application/global
  • Objet document
  • Objet page
  • Objet du masque
  • Objet Selection
  • Objet Shape
  • Objet Window
Chacun de ces objets possède un ensemble de méthodes et propriétés qui sont nécessaires pour manipuler dans Visual Basic. Par exemple, un objet Shape peut représenter n'importe quel objet sur une page de dessin Visio que vous pouvez sélectionner en utilisant le pointeur. Par conséquent, un objet Shape peut être une forme, un groupe, un guide, un contrôle ou un objet à partir d'un autre programme qui est lié, incorporée ou importées dans un dessin Visio.

Mise en route

Les exemples de code dans cet article montrent comment contrôler Visio à partir de Microsoft Office 2007, Microsoft Office 2003, Microsoft Office 2002, Microsoft Visual Basic 6.0, ou de n'importe quel programme qui inclut un outil de développement Visual Basic. Pour automatiser Visio, procédez comme suit principal quatre :
  1. Ajouter une référence à la bibliothèque de types de Visio.
  2. Déclarez une variable en un type d'objet Visio (généralement Visio.Application ou Visio.Documents).
  3. Affecter la méthode GetObject ou CreateObject à la variable objet déclaré dans l'étape 2.
  4. Utiliser les propriétés, méthodes et les objets enfants l'objet Visio pour automatiser Visio.

Étape 1: Ajouter une référence de à la bibliothèque de types de Visio

Pour ajouter une référence à la bibliothèque de types de Visio à l'aide d'applications Microsoft Office tels que Microsoft Office XP ou Office 2003, procédez comme suit :
  1. Dans Access, PowerPoint, Excel ou Word, pointez sur macros dans le menu Outils , puis cliquez sur Visual Basic Editor .
  2. Dans le menu Outils , cliquez sur Références .

    note Pour ajouter la référence à l'aide de Microsoft Visual Basic 6.0, cliquez sur Références dans le menu projet .
  3. Dans la liste de Références disponibles , cliquez sur pour sélectionner l'une des cases à cocher suivantes, selon la version de Visio que vous utilisez :
    • Pour Visio 2007, cliquez sur cette option pour Activez la case à cocher bibliothèque de types de Microsoft Visio 12.0 .
    • Pour Visio 2003, cliquez sur cette option pour Activez la case à cocher bibliothèque de types de Microsoft Visio 11.0 .
    • Pour Visio 2002, cliquez sur cette option pour Activez la case à cocher bibliothèque de types de Microsoft Visio 2002 .
Lorsque vous ajoutez la référence de bibliothèque de types de Microsoft Visio, votre programme pouvez accéder à Microsoft Visio Aide et le modèle d'objet Visio. Car les références sont enregistrés dans chaque projet, vous devez ajouter la référence de bibliothèque de types de Visio pour chaque projet Visual Basic ou VBA que vous souhaitez utiliser pour automatiser Visio.

Étape 2: déclarez la variable d'objet

Pour déclarer une dimension Visio objet variable, une variable comme un type objet Visio spécifique comme Visio.Application, Visio.Documents ou Visio.Page.

Déclarer explicitement que le type d'objet est appelé une liaison anticipée , car l'application contrôleur se connecte ou lie l'objet à l'application Visio au moment de la compilation plutôt qu'au moment de l'exécution. Ceci vous donne accès à Visio automatique listes et aide contextuelle et permet le code s'exécuter plus efficacement.

Pour plus d'informations sur la liaison d'objet, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
138138 Plus tard, ID, la liaison au plus tôt types de possible dans Visual Basic pour Applications
L'argument de Visual Basic exemple suivant déclare la variable AppVisio en tant qu'objet de type Visio.Application :

   Dim AppVisio as Visio.Application
				

Étape 3: définir la variable

Vous pouvez utiliser deux méthodes Visual Basic suivantes pour activer Visio :
  • CreateObject
  • GetObject
La principale différence est que la méthode CreateObject crée une nouvelle instance de Visio, et la méthode GetObject utilise une instance déjà en cours d'exécution de Visio. Vous pouvez également utiliser GetObject pour affecter votre variable d'objet à un document Visio spécifique.

L'argument exemple suivant montre la variable AppVisio l'application Visio à l'aide de la fonction CreateObject fonction :
   Dim AppVisio as Visio.Application

   Set AppVisio = CreateObject("Visio.Application")
				
dans certains cas, vous souhaiterez peut-être utiliser une instance existante de Visio si Visio est déjà en cours d'exécution, mais créer une nouvelle instance si Visio n'est pas en cours d'exécution. Pour ce faire, créez un gestionnaire d'erreur qui utilise la méthode CreateObject dans le cas où la méthode GetObject échoue, comme dans cet exemple de code :
   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

				
Remarque vous pouvez également utiliser la fonction CreateObject pour créer un Visio instance c'est-à-dire invisible. Par exemple :
Set AppVisio = CreateObject("Visio.InvisibleApp")
				
vous pouvez ensuite utiliser les propriété visible l'objet Application pour contrôler si l'instance est visible.

Vous pouvez utiliser l'objet InvisibleApp avec uniquement la fonction CreateObject. Tente d'utiliser avec la GetObject fonction échouera. L'objet InvisibleApp n'est pas disponible dans les versions de Visio antérieures à Microsoft Office Visio 2000.

Étape 4: utiliser les objets, méthodes et propriétés Visio

Après avoir effectué les étapes 1 à 3, vous pouvez utiliser le Visio variable d'objet pour automatiser Visio.

L'exemple de macro suivante utilise automation pour lancer Visio, créez un nouveau dessin (document) basé sur le modèle Basic Diagram, tombe un rectangle, ajoute du texte et enregistre le dessin et ferme 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
				

Références

Sites Web de Microsoft Visio Developer

Pour plus savoir comment automatiser Visio, reportez-vous au adresse site Web de Microsoft à l'adresse suivante :
http://msdn2.microsoft.com/en-us/office/aa905478.aspx
Pour savoir comment développer Microsoft Visio solutions, reportez-vous à l'adresse suivante Microsoft :
http://msdn2.microsoft.com/en-us/library/aa217846(office.10).aspx

Kits de développement logiciel Visio

Pour télécharger le Kit de développement de logiciel Visio 2002, reportez-vous au à l'adresse suivante du Microsoft :
http://www.microsoft.com/downloads/details.aspx?familyid=d2845e80-6634-4703-9ad9-7e440ede12d7&displaylang=en

Pour télécharger le Kit de développement logiciel de Visio 2003, reportez-vous au suivante Microsoft Web site adresse :
http://www.microsoft.com/downloads/details.aspx?familyid=557120bd-b0bb-46e7-936a-b8539898d44d&displaylang=en

Groupes de discussion

Le groupe de discussion homologue à homologue suivant est disponible pour vous aider à interagir avec les autres utilisateurs de Visual Basic pour Applications :
Microsoft.public.vb.OLE.Automation
Microsoft.public.Visio.Developer.VBA

Aide de Visual Basic

Pour plus d'informations sur l'utilisation de la fonction CreateObject , dans Visual Basic Editor, cliquez sur l'aide de Microsoft Visual Basic dans le menu Aide , tapez la fonction createobject dans la zone de recherche et puis cliquez sur Rechercher pour consulter les rubriques qui sont renvoyés.

Pour plus d'informations sur l'utilisation de la fonction GetObject , dans Visual Basic Editor, cliquez sur l'aide de Microsoft Visual Basic dans le menu Aide , tapez la fonction getobject dans la zone de recherche et puis cliquez sur Rechercher pour consulter les rubriques qui sont renvoyés.

Propriétés

Numéro d'article: 309603 - Dernière mise à jour: mercredi 11 avril 2007 - Version: 4.1
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • 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 Professionnel
Mots-clés : 
kbmt kbautomation kbprogramming kbvba kbhowto KB309603 KbMtfr
Traduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 309603
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires

 

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