Blog ENI : Toute la veille numérique !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
💥 Les 22 & 23 novembre : Accès 100% GRATUIT
à la Bibliothèque Numérique ENI. Je m'inscris !

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).

images/1911RI1.png

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.

images/1911RI2.png

2. Les formats Excel

Les différents formats pris en charge apparaissent dans l’interface d’enregistrement d’Excel 2021.

images/1911RI3.png

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).

images/1911RI4.png

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.

images/1911RI5.png

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).

images/1911RI6.png

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.

images/1911RI7.png

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...