Communication avec les applications Office
La technologie Automation
1. Présentation
Automation, appelée également OLE (Object Linking and Embedding) ou OLE Automation, est une technologie vous permettant de manipuler les objets d’une autre application directement à partir d’Excel ou de VBA Excel.
Pour fonctionner, Automation nécessite un client et un serveur appelé serveur OLE. Le serveur est l’application ou le composant qui fournit les services au client. Le client (appelé également contrôleur) utilise ces services pour piloter l’application serveur et manipuler ses objets. Par exemple si vous lancez un publipostage Word à partir de VBA Access, Access est le client et Word le serveur OLE.
Une bibliothèque d’objets est un fichier, doté généralement d’une extension olb, fournissant les informations permettant de manipuler les objets mis à disposition par un serveur. Vous pouvez utiliser l’Explorateur d’objets pour examiner le contenu d’une bibliothèque d’objets.
Pour avoir accès aux objets d’une autre application, vous devez référencer sa bibliothèque d’objets de la façon suivante :
Sélectionnez l’option Références du menu Outils. La boîte de dialogue Références s’affiche alors avec tous les serveurs OLE enregistrés dans la base de registre.
Activez ensuite les références souhaitées.
Le numéro précisé dans le nom de la bibliothèque d’objets correspond à la version de Microsoft Office (12.0 pour la version 2007, 14.0 pour la version 2010, 15.0 pour la version 2013 et 16.0 à partir de la version 2016 et pour les Office 365).
2. Utilisation de la technologie Automation
Pour pouvoir manipuler les objets d’une autre application, vous...
Communiquer avec Word depuis Excel
1. Le modèle objet Word
2. Principales collections du modèle objet Word
AddIns
Collection d’objets AddIn représentant les modèles et compléments disponibles dans Word, qu’ils soient actuellement chargés ou non.
AutoCaptions
Collection d’objets AutoCaption représentant les légendes ajoutées automatiquement lorsque des éléments tels que des tableaux et des images sont insérés dans un document.
CaptionsLabels
Collection d’objets CaptionLabel représentant les intitulés des légendes ajoutées automatiquement lorsque des éléments tels que des tableaux et des images sont insérés dans un document.
COMAddIns
Collection d’objets COMAddIn représentant les compléments COM (Component Object Model) accessibles depuis Word.
Dialogs
Collection d’objets Dialog représentant les boîtes de dialogue intégrées de Word.
Documents
Collection d’objets Document représentant tous les fichiers actuellement ouverts dans Word.
FileConverters
Collection d’objets Converter représentant tous les convertisseurs de fichier disponibles pour l’ouverture et l’enregistrement de fichiers depuis Word.
Languages
Collection d’objets Language représentant toutes les langues disponibles dans Word pour les vérifications linguistiques.
ListGalleries
Collection d’objets ListGallery représentant les trois bibliothèques de modèles de puces et numéros (Avec puces, Numéros et Hiérarchisation).
RecentFiles
Collection d’objets RecentFile représentant les derniers fichiers ouverts dans Word.
Tasks
Collection d’objets Task représentant l’ensemble des applications en cours d’exécution.
Templates
Collection d’objets...
Communiquer avec Access depuis Excel
1. Le modèle objet Access
Extrait du modèle objet Access :
2. Principales collections du modèle objet Access
COMAddIns
Collection des macros complémentaires (objets COMAddIn) inscrites dans Access.
Forms
Collection des formulaires (objets Form) actuellement ouverts dans une base de données Access.
Modules
Collection des modules standards et modules de classe (objets Module) actuellement ouverts dans une base de données Access.
Printers
Collection d’objets Printer représentant toutes les imprimantes disponibles sur le système actuel.
References
Collection d’objets Reference représentant les références VBA d’une base de données Access.
Reports
Collection des états (objets Report) actuellement ouverts dans une base de données Access.
3. Principaux objets du modèle objet Access
DBEngine
Objet représentant le moteur de base de données Microsoft Jet.
DoCmd
Objet permettant d’effectuer des actions Access telles que la fermeture de fenêtres, l’ouverture de formulaires, d’états… La plupart des actions macros peuvent être converties en VBA à partir de l’objet DoCmd.
FileDialog
Objet représentant une boîte de dialogue permettant d’effectuer des actions sur un fichier (ex : ouverture d’un fichier, enregistrement d’un fichier…).
LanguageSettings
Objet renvoyant des informations sur les paramètres linguistiques d’Access.
Screen
Objet permettant d’accéder au formulaire, à l’état ou au contrôle qui a actuellement le focus.
CurrentProject (ou CodeProject)
Objet regroupant plusieurs collections d’objets Access spécifiques :
AllForms |
Collection de tous les formulaires d’une base de données Access |
AllMacros |
Collection de toutes... |
Communiquer avec Outlook depuis Excel
1. Les objets d’Outlook
AppointmentItem
Objet représentant une entrée du calendrier : une réunion, un rendez-vous ponctuel ou également des rendez-vous ou réunions périodiques.
ContactItem
Objet représentant un contact situé dans un dossier d’Outlook pouvant contenir des contacts.
Folder
Objet représentant un dossier d’Outlook.
JournalItem
Objet représentant une entrée de journal (enregistrement de toutes les transactions effectuées dans Outlook pendant une période donnée).
MailItem
Objet représentant un message électronique (e-mail) situé dans un dossier d’Outlook pouvant contenir des messages.
NoteItem
Objet représentant une note Outlook située dans un dossier pouvant contenir des notes.
PostItem
Objet représentant une publication située dans un dossier public que d’autres utilisateurs peuvent parcourir.
TaskItem
Objet représentant une tâche située dans le dossier Tâches d’Outlook.
2. Accès aux objets Outlook
a. Création d’un objet (e-mail, contact…) dans Outlook
La méthode CreateItem de l’objet Application permet de créer une instance d’objet pour un message électronique, un rendez-vous…
Exemple
Création d’un nouveau contact dans Outlook.
Sub Cree_Contact()
Dim oAppOutlook As Outlook.Application
Dim oContact As Outlook.ContactItem
' Lance une session Microsoft Outlook
Set oAppOutlook = CreateObject("outlook.application")
' Crée un nouveau contact avec un nom et une adresse de messagerie
Set oContact = oAppOutlook.CreateItem(olContactItem)
oContact.LastName = "PEREZ Patrice"
oContact.MailingAddress = "patrice.perez@orange.fr"
' ...
Les objets liés ou incorporés
Il est possible de manipuler les objets liés ou incorporés dans Excel à partir de la collection OLEObjects d’objets OLEObject.
L’objet parent peut être un objet Worksheet ou un objet Chart.
Exemple
La procédure suivante modifie la taille et affecte une bordure à tous les objets incorporés dans la feuille de calcul Produits.
Sub Format_OLE()
Dim ole1 As OLEObject
For Each ole1 In Worksheets("Produits").OLEObjects
With ole1
.Height = 100
.Width = 100
.Border.Color = vbRed
.Border.LineStyle = xlContinuous
.Border.Weight = xlMedium
End With
Next ole1
End Sub
1. Les méthodes de l’objet OLEObject
Activate |
Duplicate |
Add |
Item |
BringToFront |
Select |
Copy |
SendToBack |
CopyPicture |
UpDate |
Cut |
Delete |
2. Les propriétés de l’objet OLEObject
AutoLoad
True si l’objet est automatiquement chargé lorsque le classeur qui le contient est ouvert.
OLEType
Renvoie xlOLELink ou xlOLEEmbed.
Application |
Name |
AutoUpdate |
Object |
Border |
Parent |
BottomRightCell |
Placement |
Count |
PrintObject |
Creator |
ProgId |
Enabled |
ShapeRange |
Height |
Shadow |
Index |
SourceName |
Interior |
Top |
Left |
TopLeftCell |
LinkedCell |
Visible |
ListFillRange |
Width |
Locked |
ZOrder |
Méthodes et propriétés relatives aux liaisons Excel
1. Méthodes et propriétés de l’objet Workbook
ChangeLink (méthode)
Modifie une liaison entre deux documents.
ChangeLink (NAME,NEWNAME,type)
NAME |
Nom de la liaison à modifier. |
NEWNAME |
Nouveau nom de la liaison. |
Type |
Type de liaison à renvoyer : xlLinkTypeExcelLinks, xlLinkTypeOLELinks. |
LinkInfo (méthode)
Renvoie sur la date de liaison et l’état de mise à jour.
LinkInfo(NAME,LINKINFO,Type,EditionRef)
NAME |
Nom de la liaison. |
LINKINFO |
Type d’informations à renvoyer : (xlUpdateState ou xlEditionDate). |
Type |
Type de liaison à renvoyer : xlLinkInfoOLELinks, xlLinkInfoPublishers ou xllinkInfoSubscribers. |
EditionRef |
Référence de la liaison s’il s’agit d’une édition. |
LinkSources (méthode)
Renvoie un tableau Visual Basic des liaisons dans le classeur.
LinkSources(type)
Type |
Type de liaison à renvoyer : xlExcelLinks, xlOLELinks, xlPublishers, xlSubscribers. |
OpenLinks (méthode)
Ouvre le document source d’une liaison.
OpenLinks(NAME,readonly,type)
NAME |
Nom de la liaison. |
Readonly |
Ouverture en lecture seule (True ou False). |
Type |
Type de la liaison : xlExcelLinks, xlOLELinks, xlPublishers ou xlSubscribers. |
SaveLinkValues (propriété)
Propriété qui renvoie True si Excel enregistre les valeurs de liaisons externes dans le classeur.
SetLinkOnData (méthode)
Crée une procédure à exécuter lors de toute modification des données dans un lien.
SetLinkOnData(NAME,PROCÉDURE)
NAME |
Nom de la liaison. |
PROCÉDURE |
Nom de la procédure à exécuter lors de la mise à jour de la liaison. |
UpDateLink (méthode)
Met à jour un lien.
UpDateLink(NAME,type)
NAME |
Nom de la liaison. |
Type |
Type de liaison : xlLinkTypeExcelLinks ou xlLinkTypeOLELinks. |