Les objets Excel VBA font référence à des « entités » uniques composées de code et de données. L'application Excel elle-même est un objet, tout comme les classeurs, les feuilles de calcul, les plages de cellules et les formes. Chaque objet a des propriétés et des méthodes associées. Les objets peuvent également contenir d'autres objets et l'objet collections est utilisé pour faire référence à un groupe des mêmes objets Excel.
Dans ce didacticiel, nous allons examiner quelques objets Excel couramment utilisés.
Objet d'application
L'objet Application fait référence à l'ensemble de l'application Excel. L'objet Application contient l'objet classeur.
Le code suivant utilise la propriété WindowState de l'objet Application pour définir la fenêtre Excel à la taille maximale disponible :
12345 | Sous MaximizingTheExcelWindow()Application.WindowState = xlMaximizedFin du sous-marin |
Objet de classeur
L'objet Workbooks fait référence à la collection de tous les classeurs Excel actuellement ouverts.
Le code suivant utilise la méthode Workbooks.Add pour créer un nouveau classeur et l'ajouter à la collection :
12345 | Sub AddingANewWorkbookToTheWorkbooksCollection()Classeurs.AjouterFin du sous-marin |
Vous pouvez accéder à un classeur individuel dans la collection Workbooks via son numéro d'index ou son nom. Vous pouvez donc vous référer à un classeur appelé ExcelWb, en utilisant Workbooks ("ExcelWB").
Objet classeur
L'objet classeur fait partie de la collection Workbooks. L'objet classeur contient la collection de feuilles de calcul (feuilles de calcul) et la collection de feuilles (feuilles de calcul, feuilles de graphique et feuilles de macro). L'objet ActiveWorkbook fait référence au classeur qui est actif.
Le code suivant utilise la méthode ActiveWorkbook.Save pour enregistrer le classeur actif actuel :
12345 | Sub SavingTheWorkbook()ActiveWorkbook.EnregistrerFin du sous-marin |
Objet Feuilles
L'objet feuilles fait référence à la collection de toutes les feuilles de calcul, feuilles de graphique et macrofeuilles d'un classeur. Le code suivant utilise la méthode Sheets.Add pour ajouter une nouvelle feuille de calcul appelée ExtraSheet, après la dernière feuille de calcul du classeur :
123456 | Sub AddingANewSheet()ActiveWorkbook.Sheets.Add(After :=ActiveWorkbook.Worksheets(Worksheets.Count), Count :=1, _Tapez : =xlWorksheet).Name = "ExtraSheet"Fin du sous-marin |
Notez que la syntaxe de la méthode Sheets.Add est :
Feuilles.Ajouter(Avant, Après, Compter, Taper) où:
-Before est facultatif et spécifie que la nouvelle feuille doit être ajoutée avant une feuille existante.
-After est facultatif et spécifie que la nouvelle feuille doit être ajoutée après une feuille existante.
-Count est facultatif et spécifie le nombre de feuilles à ajouter.
-Type est facultatif et spécifie le type de feuille. xlWorksheet ajouterait une nouvelle feuille de calcul, xlChart ajouterait une nouvelle feuille de graphique et xlExcel4MacroSheet ou xlExcel4IntlMacroSheet ajouterait une nouvelle macrosheet. S'il est vide, la feuille xlWorksheet par défaut est utilisée.
Vous pouvez accéder à une feuille individuelle de la collection Sheets via son numéro d'index ou son nom. Vous pouvez donc vous référer à une feuille de calcul appelée SheetOne, en utilisant Sheets ("SheetOne").
Objet Feuilles de calcul
L'objet Worksheets fait référence à la collection de toutes les feuilles de calcul d'un classeur. Le code suivant utilise la méthode Worksheets.Add pour ajouter une nouvelle feuille de calcul :
12345 | Sub AddingANewSheet()Feuilles de calcul.AjouterFin du sous-marin |
Vous pouvez accéder à une feuille individuelle dans la collection Worksheets via son numéro d'index ou son nom. Vous pouvez donc vous référer à une feuille de calcul appelée SheetTwo, en utilisant Worksheets ("SheetTwo").
Objet Feuille de calcul
L'objet feuille de calcul fait partie de la collection Worksheets. L'objet feuille de calcul contient l'objet plage et d'autres objets. L'objet ActiveSheet fait référence à la feuille active.
Le code suivant modifie l'orientation de la page de la feuille active en paysage :
12345 | Sous ModificationOrientationVersPaysage()ActiveSheet.PageSetup.Orientation = xlLandscapeFin du sous-marin |
Notez que l'objet Sheet contient l'objet PageSetup et que sa propriété orientation est définie sur xlLandscape.
Objet de plage
L'objet Range peut faire référence à une seule cellule ou à un ensemble de cellules dans une feuille de calcul. Le code suivant vous montre comment utiliser la méthode Range.Select pour sélectionner les cellules A1:B1 :
12345 | Sub SelectingARange()Plage ("A1:B1").SélectionnezFin du sous-marin |
Objet Formes
L'objet Shapes fait référence à la collection de toutes les formes d'une feuille de calcul. Le code suivant sélectionnerait toutes les formes sur l'ActiveSheet :
12345 | Sous-sélection de toutes les formes ()ActiveSheet.Shapes.SelectAllFin du sous-marin |
Objet de forme
L'objet Shape fait partie de la collection Shapes. Le code suivant créerait une forme de rectangle arrondi, puis définirait la propriété name de l'objet de forme :
123456789 | Sub UsingTheShapeObject()Avec Worksheets(1).Shapes.AddShape(msoShapeRoundedRectangle, _200, 100, 80, 80).Name = "Un rectangle arrondi"Terminer parFin du sous-marin |
Modèle objet Excel VBA
Le modèle d'objet VBA d'Excel décrit la hiérarchie de tous les objets que vous pouvez utiliser dans Excel. Par exemple, vous pouvez utiliser l'objet Workbooks pour faire référence à tous les autres objets indirectement ou directement. Le code suivant vous montre comment sélectionner la cellule A1 à l'aide de la structure hiérarchique :
12345 | Sub UsingTheHierachicalStructure()Classeurs("Livre1").Feuilles de travail("Feuille1").Plage("A1").SélectionnerFin du sous-marin |
Déclaration et affectation d'une variable objet
Vous pouvez déclarer et affecter un objet à une variable en utilisant les mots clés Dim et Set.
Par exemple:
12 | Dim ws comme feuille de calculDéfinir ws = ActiveWorkbook.ActiveSheet |
Le code suivant vous montre comment déclarer et affecter un objet Range à une variable :
12345678910111213141516 | Sub AssigningARangeToAVariable()Dim rngOne comme objetDéfinir rngOne = Range("A1:C1")rngOne.Font.Bold = TrueAvec rngOne.Font.Bold = True.Font.Name = "Calibri".Font.Taille = 9.Font.Couleur = RVB (35, 78, 125).Intérieur.Couleur = RVB (205, 224, 180).Borders(xlEdgeBottom).LineStyle = xlContinuousTerminer parFin du sous-marin |
Le résultat est:
Il est essentiel de comprendre le fonctionnement des objets pour maîtriser VBA. Vous pouvez en savoir plus avec notre didacticiel interactif VBA.