La programmation objet sous Excel
Présentation
VBA Excel est un langage de programmation orienté objet, même s’il ne dispose pas de toutes les fonctionnalités des langages de ce type.
La plupart des éléments manipulés dans Excel sont des objets : les classeurs, les feuilles de calcul, les plages de cellules, les cellules...
Les objets sont organisés selon un modèle hiérarchique : certains objets contiennent d’autres objets qui peuvent eux-mêmes en contenir d’autres... Ces objets sont appelés conteneur ou objet parent. Par exemple, l’objet Application est le conteneur des objets Workbook (classeurs ouverts dans Excel), qui sont eux-mêmes les conteneurs des objets Worksheet (feuilles de calcul d’un classeur). Le conteneur le plus vaste est l’objet Application.
Un ensemble d’objets de même nature constitue une collection (collection Workbooks : ensemble des classeurs ouverts dans Excel, collection Worksheets : ensemble des feuilles de calcul d’un classeur).
Un objet dispose d’un ensemble de caractéristiques appelées propriétés (par exemple pour l’objet Application : la propriété UserName représente le nom de l’utilisateur, la propriété Version renvoie le numéro de version de Microsoft Excel) et de comportements ou actions appelés méthodes (par exemple, toujours pour l’objet Application, la méthode FindFile affiche la boîte de dialogue Ouvrir, la méthode Quit quitte Excel...).
Un objet répond à des événements provoqués par l’utilisateur (ex : ouverture d’un classeur, clic sur un bouton de commande, changement de cellule active...) ou par le système.
Les classes sont des modèles permettant de créer des objets de même nature. Les objets issus...
Le modèle objet Excel
1. Présentation
2. Principaux objets et collections
Les objets
Application
Objet faisant référence à l’application Microsoft Excel active.
AutoCorrect
Objet représentant les attributs de correction automatique de Microsoft Excel.
AutoRecover
Objet représentant les options de récupération automatique d’un classeur. Ces macros sont accessibles depuis Excel à partir de l’onglet Enregistrer du menu Outils - Options.
DefaultWebOptions
Objet renvoyant les attributs utilisés par Excel lors de l’ouverture ou l’enregistrement d’une page web.
ErrorCheckingOptions
Objet représentant les options de vérification d’erreurs de l’application Excel.
LanguageSettings
Objet contenant des informations sur les paramètres de langue d’Excel.
Speech
Objet contenant des méthodes et des propriétés qui se rapportent aux fonctions vocales.
SpellingOptions
Objet représentant les options d’orthographe de l’application.
VBE
Objet VBE représentant Visual Basic Editor.
WorkSheetFunction
Objet contenant toutes les fonctions disponibles dans Excel. Cet objet permet d’obtenir le résultat d’une fonction appliquée à une plage de cellules. Exemple : Moy = Application.WorksheetFunction.Average(Selection)
Les collections
AddIns
Collection contenant toutes les macros complémentaires (objets AddIn).
COMAddIns
Représente les compléments COM actuellement installés dans Microsoft Excel.
CommandBars
Collection des barres de commandes d’Excel (objets CommandBar).
Dialogs
Collection des boîtes de dialogue intégrées d’Excel.
FileExportConverters
Collection de tous les convertisseurs de fichier pour l’enregistrement des fichiers dans Microsoft Excel.
Names
Collection de tous...
Principes d’utilisation des objets et collections
1. Les propriétés
Les propriétés servent à décrire un objet. Certaines propriétés sont en lecture seule et ne peuvent par conséquent pas être modifiées par du code VBA.
Syntaxe
{<objet> | <variable objet>}.<propriété>
Exemple
' Modification du pointeur de la souris
Application.Cursor = xlWait
' Affichage de la version de l'application Excel active
' Cette propriété est en lecture seule
MsgBox Application.Version
' Pointeur de la souris par défaut
Application.Cursor = xlDefault
2. Propriétés représentant des objets
Les objets globaux et les objets instanciés dans le code à partir des classes fournies par VBA possèdent des propriétés dont la valeur est mise à jour automatiquement par le système.
Ces propriétés spécifiques permettent d’accéder directement à certains objets : fenêtre active, classeur actif, cellules de la feuille active... Le tableau suivant présente les propriétés spécifiques les plus couramment utilisées.
Propriété |
Objet Parent |
Objet renvoyé |
ActiveCell |
Application Window |
Objet Range représentant la première cellule active de la fenêtre active ou spécifiée. |
ActiveChart |
Application Window Workbook |
Objet Chart représentant le graphique actif. |
ActiveControl |
Frame Page UserForm |
Objet Control représentant le contrôle (ActiveX) actif. |
ActivePane |
Window |
Objet Pane représentant le volet actif de la fenêtre active. |
ActiveSheet |
Application Window Workbook |
Objet Worksheet représentant la feuille active du classeur actif... |
Instructions utilisées avec les objets
1. L’instruction With
L’instruction With permet d’accéder plusieurs fois au même objet en le nommant une seule fois.
Elle offre plusieurs avantages :
-
Optimisation du temps d’exécution du code.
-
Gain de temps sur le travail d’écriture.
-
Meilleure lisibilité du code.
Syntaxe
With <Objet>
<code utilisant des méthodes et propriétés>
<se rapportant à l'objet>
End With
Exemple
Ajout et modification d’une feuille de calcul.
With ActiveWorkbook
' Crée une feuille après la dernière feuille du classeur actif
.Worksheets.Add , .Worksheets(.Worksheets.Count)
' Modifie le nom de la nouvelle feuille et renseigne la cellule A1
With .ActiveSheet
.Name = "Synthèse"
.Range("A1") = "Récapitulatif des devis"
End With
End With
2. L’instruction For Each...Next
L’instruction For Each...Next permet de passer en revue les objets d’une collection ou d’un tableau.
Syntaxe
For Each <élément > In <groupe>
<séquence d'instructions>
[Exit For]
<séquence d'instructions>
Next <élément>
Exemple
Modification du contenu de la cellule A1 et du nom de toutes les feuilles du classeur actif.
Sub NumDevis()
Dim oFeuille As Worksheet
For Each oFeuille In ActiveWorkbook.Worksheets
oFeuille.Cells(1...
L’explorateur d’objets
1. Présentation
Compte tenu du nombre important d’objets Excel et de leur diversité, il est parfois utile de pouvoir rechercher des informations se rapportant aux objets.
L’explorateur d’objets permet d’afficher des informations relatives aux objets, méthodes, propriétés, événements et constantes.
Vous pouvez l’afficher de différentes façons :
Affichage - Explorateur d’objets ou (barre d’outils Standard) ou [F2].
1. Liste des bibliothèques actuellement chargées.
2. Texte recherché : objet, propriété, collection, événement, méthode...
3. Résultats de la recherche : liste des classes d’objets (objets et collections) et des membres les composant (objet, collection, propriété, événement ou méthode). Le mot recherché peut être dans la liste des classes ou dans celle des membres.
4. Classes d’objets de la bibliothèque : la classe d’objet sélectionnée dans la liste Résultats de la recherche est encadrée.
6. Détail de l’élément sélectionné.
2. Recherche dans l’Explorateur d’objets
Pour effectuer une recherche dans l’explorateur d’objets, procédez de la manière suivante :
Saisissez le mot recherché dans la deuxième liste déroulante.
Cliquez sur l’icône . Si la liste Résultats de la recherche affiche plusieurs lignes, déplacez-vous sur celle qui vous intéresse...