Communication avec d'autres applications

En plus d’utiliser des données Word, vous pouvez souhaiter que votre application échange des données avec d’autres applications, telles qu’Excel, PowerPoint ou Access. Pour ce faire, vous pouvez utiliser la spécification pour l'échange de données Automation (anciennement OLE Automation) ou l'échange dynamique de données (DDE).

Automatisation de Word à partir d'une autre application

Automation vous permet de renvoyer, modifier et exporter des données en faisant référence aux objets, aux propriétés et aux méthodes d'une autre application. Les objets d'une application auxquels une autre application peut faire référence sont appelés objets Automation.

La première étape pour rendre Word disponible pour une autre application pour Automation consiste à faire une référence à l’objet Application Word. Dans Visual Basic, vous utilisez la fonction Visual Basic CreateObject ou GetObject pour renvoyer une référence à l’objet Application Word. Par exemple, dans une procédure Excel, vous pouvez utiliser l’instruction suivante.

Set wrd = CreateObject("Word.Application")

Cette instruction rend l'objet Application de Word accessible à Automation. En utilisant les objets, propriétés et méthodes de l'objet Application de Word, vous pouvez contrôler Word. Par exemple, l'instruction suivante permet de créer un document Word.

wrd.Documents.Add

Pour afficher le nouveau document après l'avoir créé, utilisez la propriété Visible.

wrd.Visible = True

La fonction CreateObject démarre une session Word qu'Automation ne ferme pas lorsque la variable qui fait référence à l'objet Application expire. Le fait d'attribuer à la référence de l'objet le mot clé Visual Basic Nothing ne permet pas de fermer Word. Pour fermer l'application Word, utilisez la méthode Quit. L’exemple Excel suivant affiche le chemin de démarrage de Word. La méthode Quit est utilisée pour fermer la nouvelle instance Word après affichage du chemin de démarrage.

Set wrd = CreateObject("Word.Application") 
MsgBox wrd.Options.DefaultFilePath(wdStartupPath) 
wrd.Quit

Automatisation d'une autre application à partir de Word

Pour échanger des données avec une autre application en utilisant Automation à partir de Word, commencez par récupérer une référence à l'application en employant la fonction CreateObject ou GetObject. Ensuite, en utilisant les objets, propriétés et méthodes de l'autre application, ajoutez, modifiez ou supprimez des informations. Lorsque vous avez terminé vos modifications, fermez l'application. L’exemple Word suivant affiche le chemin de démarrage d’Excel. Utilisez l’instruction Visual Basic Set avec le mot clé Nothing pour effacer une variable objet, ce qui a le même effet que la fermeture de l’application.

Set myobject = CreateObject("Excel.Application") 
MsgBox myobject.StartupPath 
Set myobject = Nothing

Utilisation de l'échange dynamique de données

Si une application ne prend pas en charge Automation, DDE peut être utilisé en remplacement. DDE est un protocole qui permet à deux applications de communiquer en échangeant des données en continu et automatiquement via un « canal » DDE. Pour contrôler une conversation DDE entre deux applications, vous établissez un canal, sélectionnez une rubrique, demandez et envoyez des données, puis fermez le canal. Le tableau suivant répertorie les tâches que Word effectue avec DDE ainsi que les méthodes utilisées pour contrôler chacune de ces tâches dans Visual Basic.

Note de sécurité

Tâche Méthode
Démarrage de DDE DDEInitiate
Obtention de texte provenant d'une autre application DDERequest
Envoi de texte à une autre application DDEPoke
Exécution d'une commande dans une autre application DDEExecute
Fermeture du canal DDE DDETerminate
Fermeture de tous les canaux DDE DDETerminateAll

Assistance et commentaires

Avez-vous des questions ou des commentaires sur Office VBA ou sur cette documentation ? Consultez la rubrique concernant l’assistance pour Office VBA et l’envoi de commentaires afin d’obtenir des instructions pour recevoir une assistance et envoyer vos commentaires.