Piloter les autres applications Office 2021
Automation
Nous avons vu jusqu’à présent plusieurs façons de programmer dans une application Microsoft Access 2021. Dans ce chapitre, nous allons voir comment il est possible de piloter depuis Access les principales autres applications complémentaires de la suite Office, que sont Excel, Word et Outlook.
1. Liaison tardive et liaison anticipée
Lorsque l’on travaille avec des variables de type Object, le compilateur VB effectue ce qu’on appelle une liaison lorsqu’on attribue à une variable une valeur, comme dans l’exemple suivant :
Set Tbl = CurrentDb.TableDefs("ENI_CONTRAT_CON")
Afin de pouvoir réaliser une liaison entre une variable et un objet, la variable doit être déclarée en amont dans le programme. De cette déclaration déboucheront deux liaisons possibles.
a. Liaison anticipée ou Early Binding
Lorsque la variable est déclarée avec son type précis, comme dans l’exemple suivant, on dit que la liaison est anticipée :
Dim Tbl As TableDef
Ce type de déclaration permet au code de prévoir l’espace mémoire nécessaire pour stocker le type de variable. Il a également l’avantage de pouvoir faire référence aux méthodes et propriétés du type d’objet via l’autocomplétion.
Pour que cette syntaxe soit possible, il faut rajouter au projet la référence à la librairie concernée (Outils - Références).
On a tendance à privilégier ce type de déclaration lorsque l’on a la possibilité de le faire.
b. Liaison tardive ou Late Binding
Lorsque la variable est déclarée en tant que type Object, comme dans l’exemple suivant, on dit que la déclaration est tardive, c’est-à-dire qu’on...
Pilotage d’Excel
Pour piloter l’application Excel, il faut ajouter la bibliothèque Microsoft Excel 16.0 Object Library dans les références du projet (Outils - Références).
Si vous ne trouvez pas cette bibliothèque dans la liste disponible, vous pouvez cliquer sur Parcourir et aller chercher le fichier Excel.exe sur votre machine, sur laquelle il peut notamment se trouver à cet emplacement, selon que votre machine est en 64 ou 32 bits : C:\Program Files (x86)\Microsoft Office\root\Office16\EXCEL.EXE
Ou encore :
C:\Program Files\Microsoft Office\root\Office16\EXCEL.EXE
1. Hiérarchie des objets Excel
Le schéma suivant représente la hiérarchie des principaux objets et collections disponibles dans Microsoft Excel.
2. Les formats Excel
Les différents formats pris en charge apparaissent dans l’interface d’enregistrement d’Excel 2021.
Concernant les fichiers définis comme étant des "fichiers Excel", il existe plusieurs extensions de fichiers. Cette section a pour vocation de rappeler les différentes versions que vous pourriez avoir à manipuler.
a. Avant Excel 2007 - .xls
L’extension historique des fichiers Excel est .xls. Ce format a pour nom Classeur Microsoft Excel 97-2003, il contient entre 16384 et 65536 lignes selon les versions, pour 256 colonnes.
b. Depuis Excel 2007
Lorsque la version Microsoft Excel 2007 est sortie, plusieurs nouvelles extensions sont apparues. La prise en charge du format XML et l’augmentation de la capacité de stockage des fichiers sont les principales évolutions et améliorations apportées aux fichiers.
Extension |
Format |
Description |
xlsx |
Classeur Excel |
Format par défaut, fichier sans macro. |
xlsm |
Classeur Excel, prenant en charge les macros. |
Format permettant l’enregistrement de modules de code VBA. |
xlsb |
Classeur Excel binaire |
Format... |
Pilotage de Word
Pour piloter l’application Word, il faut ajouter la bibliothèque Microsoft Word 16.0 Object Library dans les références du projet (Outils - Références).
Si vous ne trouvez pas cette bibliothèque dans la liste disponible, vous pouvez cliquer sur Parcourir et aller chercher sur votre machine le fichier WinWord.exe, qui peut notamment se trouver à cet emplacement, selon que votre machine est en 64 ou 32 bits : C:\Program Files (x86)\Microsoft Office\root\Office16\WINWORD.EXE
Ou encore :
C:\Program Files\Microsoft Office\root\Office16\WINWORD.EXE
1. Hiérarchie des objets Word
Le schéma suivant représente la hiérarchie des principaux objets et collections dans l’application.
2. Liste des principaux objets et collections Word
Les principaux objets et collections qu’il est possible de manipuler sous Word sont les suivants.
a. L’application
L’objet Application de Word est l’objet le plus haut dans le modèle Word, au même titre que l’objet Application de Microsoft Access. Pour ne pas avoir de conflit de nom, il doit être précédé du nom de l’application. La variable qui représente l’objet Application de Word sera donc déclarée comme ceci :
Dim wdApp As Word.Application
À noter qu’à ce niveau du programme, aucune instance de Word n’est encore particulièrement créée. Elle ne peut l’être que lorsque la variable wdApp se verra affecter une valeur. La syntaxe suivante crée une nouvelle instance de l’application Word dès la déclaration de la variable :
Dim wdApp As New Word.Application
Pour ne pas créer de processus zombie sur la machine, il conviendra donc de quitter l’application Word avec l’instruction :
wdApp.Quit
Principales méthodes...
Pilotage d’Outlook
Pour piloter l’application Word, il faut ajouter la bibliothèque Microsoft Outlook 16.0 Object Library dans les références du projet (Outils - Références).
Si vous ne trouvez pas cette bibliothèque dans la liste disponible, vous pouvez cliquer sur Parcourir et aller chercher le fichier MSOUTL.OLB sur votre machine, qui peut notamment se trouver à cet emplacement, selon que votre machine est en 64 ou 32 bits : C:\Program Files (x86)\Microsoft Office\Root\Office16\MSOUTL.OLB
Ou encore :
C:\Program Files\Microsoft Office\root\Office16\MSOUTL.OLB
1. Hiérarchie des objets Outlook
Le schéma suivant représente la hiérarchie des principaux objets et collections de l’application Outlook.
2. Liste des principaux objets et collections Outlook
Les principaux objets et collections qu’il est possible de manipuler sous Outlook sont les suivants.
a. L’application
L’objet Application d’Outlook est l’objet le plus haut dans le modèle Outlook, au même titre que l’objet Application de Microsoft Access. Pour ne pas avoir de conflit de nom, il doit être précédé du nom de l’application. La variable qui représente l’objet Application d’Outlook sera donc déclarée comme ceci :
Dim olApp As Outlook.Application
À noter qu’à ce niveau du programme, aucune instance d’Outlook n’est encore particulièrement créée. Elle ne peut l’être que lorsque la variable olApp se verra affecter une valeur. La syntaxe suivante crée une nouvelle instance de l’application Outlook dès la déclaration de la variable :
Dim olApp As New Outlook.Application
Pour ne pas créer de processus zombie sur la machine, il conviendra donc de quitter l’application Outlook avec...