OFF : Comment faire pour utiliser l'automation (OLE) avec Word

Traductions disponibles Traductions disponibles
Numéro d'article: 184974 - Voir les produits auxquels s'applique cet article
Ancien nº de publication de cet article : F184974
Agrandir tout | Réduire tout

Sommaire

Résumé

Cet article contient une description rapide et un exemple de macro qui expliquent la procédure à suivre pour automatiser Microsoft Word à partir d'un autre programme. Pour plus d'informations, reportez-vous à la sous-section « Références » à la fin de cet article.

Plus d'informations

Microsoft fournit des exemples de programmation à des fins d'illustration uniquement, sans garantie explicite ou implicite, y compris, de manière non limitative, les garanties implicites de qualité marchande et/ou d'adéquation à un usage particulier. Cet article suppose que vous connaissez le langage de programmation présenté et les outils 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 peuvent pas modifier les exemples en vue de vous fournir des fonctionnalités supplémentaires ou de créer des procédures répondant à vos besoins spécifiques. Si vous ne maîtrisez que partiellement la programmation, vous pouvez contacter un partenaire certifié Microsoft (Microsoft Certified Partner) ou le service client Microsoft au Numero indique a la page http://support.microsoft.com/contactus/ qui pourra transmettre votre demande de consulting aux équipes Microsoft appropriées. Pour plus d'informations sur les partenaires certifiés Microsoft, reportez-vous au site Web de Microsoft à l'adresse suivante (en anglais) :
https://partner.microsoft.com/global/30000104
Pour plus d'informations sur les options de support technique disponibles et sur la façon de contacter Microsoft, reportez-vous au site Web de Microsoft à l'adresse suivante :
http://support.microsoft.com/default.aspx?scid=fh;FR;ASSISTEDOVER

L'automation (appelée précédemment automation OLE) est une fonctionnalité que les programmes utilisent pour exposer leurs objets aux outils de développement, aux langages macro et aux autres programmes qui prennent en charge l'automation. Par exemple, un tableur peut exposer une feuille de calcul, un graphique, une cellule ou une plage de cellules, chacun comme un type d'objet différent. Un traitement de texte peut exposer des objets tels qu'une application, un document, un paragraphe, une phrase, un signet ou une sélection.

Lorsqu'un programme prend en charge l'automation, vous pouvez utiliser Visual Basic pour Applications afin d'accéder aux objets qu'il expose. Vous manipulez ces objets dans Visual Basic en invoquant des méthodes sur l'objet ou en obtenant et en définissant les propriétés de l'objet.

Vous pouvez utiliser les exemples de code de cet article pour contrôler Microsoft Word à partir de Microsoft Access 97, Microsoft Excel 97, Microsoft PowerPoint 97, Microsoft Visual Basic pour les Applications ou tout autre client qui prend en charge l'automation pour contrôler Word.

Mise en route

Il existe quatre étapes principales pour automatiser Word pour Windows.
  1. Ajout d'une référence à la Bibliothèque d'objets de Microsoft Word 8.0.
  2. Déclaration d'une variable comme un type d'objet Word.
  3. Attribution de l'objet renvoyé par la fonction CreateObject à la variable objet que vous avez déclarée à l'étape 2.
  4. Utilisation des propriétés et des méthodes de la variable objet pour automatiser Word.

Étape 1 : Ajout d'une référence à la Bibliothèque d'objets de Microsoft Word 8.0

Pour ajouter une référence à la Bibliothèque d'objets de Microsoft Word 8.0 à l'aide de Microsoft Access 97, Microsoft PowerPoint 97 ou Microsoft Excel 97, procédez comme suit :
  1. Dans Microsoft Access, PowerPoint ou Excel, dans le menu Outils, pointez sur Macros, puis cliquez sur Visual Basic Editor.
  2. Dans l'Éditeur Visual Basic, dans le menu Outils, cliquez sur Références.
  3. Dans la liste des Références disponibles, activez la case à cocher (cochez) Bibliothèque d'objets de Microsoft Word 8.0.
REMARQUE : pour ajouter la référence à l'aide de Microsoft Visual Basic 5.0, cliquez sur Références dans le menu Projet.

L'ajout de la référence à la Bibliothèque d'objets de Microsoft Word 8.0 permet à votre programme d'accéder à l'aide en ligne de Microsoft Word et aux constantes, propriétés et méthodes de Microsoft Word Visual Basic pour Applications. Notez que la référence à la Bibliothèque d'objets de Word 8.0 est requise pour automatiser directement les types d'objet Word.

L'ajout d'une référence à la Bibliothèque d'objets de Word 8.0 est appelé une liaison anticipée.

Pour plus d'informations sur la liaison anticipée, consultez l'article suivant dans la Base de connaissances Microsoft.
138138 INFO : Types de liaisons anticipées, ID et tardives dans VBA

Étape 2 : Déclaration d'une variable

Pour déclarer une variable objet, vous dimensionnez la variable comme vous le feriez pour toute variable, mais vous spécifiez son type lorsque vous déclarez l'objet. Par exemple, Word.Application, Document et Paragraphe sont des Objets Word distincts.

L'exemple de ligne de commande suivant déclare la variable objWD comme un objet de type Word.Application :

   Dim objWD as Word.Application

				

Étape 3 : Définition de la variable

Il existe deux fonctions Visual Basic que vous pouvez utiliser pour « lier » la variable objet déjà déclarée à Word : CreateObject et GetObject. Les différences principales résident dans le fait que la fonction CreateObject crée une nouvelle instance de Word alors que la fonction GetObject utilise une instance de Word existante et qui s'exécute déjà. Vous pouvez également utiliser GetObject pour lier votre variable objet à un document Word spécifique.

Les exemples de ligne de commande suivants lient la variable objWD à Word à l'aide de la fonction CreateObject :

   Dim objWD as Word.Application
   Set objWD = CreateObject("Word.Application")

				
Les exemples de ligne de commande suivants lient la variable objWdDoc à un document Word spécifique :
   Dim objWdDoc As Word.Document
   Set objWdDoc = GetObject("c:\my documents\doc1.doc")
				
REMARQUE : nous vous recommandons d'utiliser uniquement la fonction CreateObject pour automatiser Word pour Windows. La fonction GetObject peut provoquer un comportement imprévisible si WordMail est en cours d'exécution ou si un document Word est incorporé dans un autre programme.

Pour savoir comment obtenir de l'aide sur Visual Basic pour Applications, reportez-vous à l'article suivant dans la Base de connaissances Microsoft.
185232 WD97 : Message d'erreur lors de l'utilisation de WordMail : « Cette méthode ou propriété n'est pas disponible »

Étape 4 : Utilisation des propriétés et des méthodes pour automatiser Word

Lorsque vous aurez terminé les étapes 1 à 3, vous pouvez utiliser la variable objet pour automatiser Word.

L'exemple de macro suivant utilise l'automation pour créer un objet Word, créer un nouveau document, ajouter du texte et enregistrer le document.
Sub AutomateWord()
   ' Declare the variable.
   Dim objWD As Word.Application
   ' Set the variable (runs new instance of Word.)
   Set objWD = CreateObject("Word.Application")
   ' Add a new document.
   objWD.Documents.Add
   ' Add some text.
   objWD.Selection.TypeText "This is some text."
   ' Save the document.
   objWD.ActiveDocument.SaveAs filename:="mydoc.doc"
   ' Quit Word.
   objWD.Quit
   ' Clear the variable from memory.
   Set objWD = Nothing
End Sub
				
REMARQUE : l'exemple de macro suivant duplique le processus décrit dans la macro AutomateWord et s'exécute directement dans Word :
Sub WordMacro()
   Documents.Add
   Selection.TypeText "This is some text"
   ActiveDocument.SaveAs filename:="mydoc.doc"
   Quit
End Sub
				

Références

Pour plus d'informations spécifique à l'automatisation de Word à l'aide de Visual Basic pour Applications, reportez-vous aux ressources suivantes.

Site Web des développeurs Microsoft Office

http://www.microsoft.com/france/msdn/office/default.mspx

Guide du programmeur de Visual Basic/Microsoft Office 97

Chapitre sur l'automatisation dans les objets Microsoft Word du Guide du programmeur de Visual Basic/Microsoft Office 97 (ISBN : 1-57231-340-4).

- ou -

Affichez le guide en ligne à l'adresse suivante (en anglais) :
http://msdn.microsoft.com/archive/default.asp?url=/archive/en-us/office97/html/web/fulltoc.asp

Groupes de discussion

Les groupes de discussion suivants vous permettent de dialoguer avec d'autres utilisateurs de Visual Basic pour Applications :
microsoft.public.word.vba.addins
microsoft.public.word.vba.beginners
microsoft.public.word.vba.customization
microsoft.public.vb.ole.automation

Base de connaissances

Pour savoir comment obtenir de l'aide sur Visual Basic pour Applications, reportez-vous à l'article suivant dans la Base de connaissances Microsoft.
163435 VBA : Ressources de programmation pour Visual Basic pour Applications

173707 OFF97 : Comment faire pour exécuter un exemple de code à partir des articles de la Base de connaissances

163425 WD97 : Ressources de programmation de macro

Compagnon Office

Pour plus d'informations sur l'automation, dans Visual Basic Editor, cliquez sur le Compagnon Office, tapez « Automation », cliquez sur Rechercher, puis cliquez pour afficher la rubrique traitant de la communication avec d'autres applications.

REMARQUE : si le Compagnon est masqué, cliquez sur le bouton Compagnon Office dans la barre d'outils Standard. Si le Compagnon Office ne répond pas à votre question, consultez l'article suivant dans la Base de connaissances Microsoft.
176476 OFF : Le Compagnon Office ne répond pas aux questions sur Visual Basic

Propriétés

Numéro d'article: 184974 - Dernière mise à jour: mardi 9 avril 2013 - Version: 4.2
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Excel 97 Standard
  • Microsoft Word 97 Standard Edition
Mots-clés : 
kbdtacode kbhowto kbinterop kbprogramming KB184974
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.
Exclusion de responsabilité concernant les contenus obsolètes dans la Base de connaissances
Cet article concerne des produits pour lesquels Microsoft n'offre plus de support. Il est par conséquent fourni « en l'état » et ne sera plus mis à jour.

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