Excel VBA-objecten verwijzen naar afzonderlijke "entiteiten" bestaande uit code en gegevens. De Excel-toepassing zelf is een object, net als werkmappen, werkbladen, celbereiken en vormen. Elk object heeft bijbehorende eigenschappen en methoden. Objecten kunnen ook andere objecten bevatten en het verzamelingsobject wordt gebruikt om naar een groep van dezelfde Excel-objecten te verwijzen.
In deze zelfstudie gaan we kijken naar enkele veelgebruikte Excel-objecten.
Toepassingsobject
Het Application Object verwijst naar de gehele Excel-applicatie. Het toepassingsobject bevat het werkmapobject.
De volgende code gebruikt de eigenschap WindowState van het Application-object om het Excel-venster in te stellen op de maximaal beschikbare grootte:
12345 | Sub MaximizingTheExcelWindow()Application.WindowState = xlMaximizedEinde sub |
Werkmappen Object
Het object Werkmappen verwijst naar de verzameling van alle momenteel geopende Excel-werkmappen.
De volgende code gebruikt de methode Workbooks.Add om een nieuwe werkmap te maken en deze aan de verzameling toe te voegen:
12345 | SubANewWorkbookToTheWorkbooksCollection() toevoegenWerkmappen.ToevoegenEinde sub |
U hebt toegang tot een afzonderlijke werkmap in de verzameling Werkmappen via het indexnummer of de naam. U kunt dus verwijzen naar een werkmap met de naam ExcelWb door Werkmappen ("ExcelWB") te gebruiken.
Werkmapobject
Het werkmapobject maakt deel uit van de verzameling Werkmappen. Het werkmapobject bevat de verzameling werkbladen (werkbladen) en de verzameling werkbladen (werkbladen, grafiekbladen en macrobladen). Het ActiveWorkbook-object verwijst naar de werkmap die actief is.
De volgende code gebruikt de methode ActiveWorkbook.Save om de huidige actieve werkmap op te slaan:
12345 | Sub Het Werkboek Opslaan()ActiveWorkbook.OpslaanEinde sub |
Bladen Object
Het werkbladobject verwijst naar de verzameling van alle werkbladen, grafiekbladen en macrobladen in een werkmap. De volgende code gebruikt de methode Sheets.Add om een nieuw werkblad met de naam ExtraSheet toe te voegen, na het laatste werkblad in de werkmap:
123456 | Sub toevoegenANewSheet()ActiveWorkbook.Sheets.Add(After:=ActiveWorkbook.Worksheets(Worksheets.Count), Count:=1, _Typ:=xlWerkblad).Naam = "ExtraBlad"Einde sub |
Let op de syntaxis van de methode Sheets.Add is:
Bladen.Toevoegen(Voordat, Na, Graaf, Type) waar:
-Voor is optioneel en geeft aan dat het nieuwe blad vóór een bestaand blad moet worden toegevoegd.
-After is optioneel en geeft aan dat het nieuwe blad moet worden toegevoegd na een bestaand blad.
-Aantal is optioneel en specificeert het aantal toe te voegen vellen.
-Type is optioneel en specificeert het type blad. xlWorksheet zou een nieuw werkblad toevoegen, xlChart zou een nieuw grafiekblad toevoegen en xlExcel4MacroSheet of xlExcel4IntlMacroSheet zou een nieuw macroblad toevoegen. Indien leeg wordt de standaard xlWorksheet gebruikt.
U hebt toegang tot een afzonderlijk blad in de Spreadsheets-collectie via het indexnummer of de naam ervan. U kunt dus verwijzen naar een werkblad met de naam SheetOne, door Spreadsheets ("SheetOne") te gebruiken.
Werkbladen Object
Het object Werkbladen verwijst naar de verzameling van alle werkbladen in een werkmap. De volgende code gebruikt de methode Worksheets.Add om een nieuw werkblad toe te voegen:
12345 | Sub toevoegenANewSheet()Werkbladen.ToevoegenEinde sub |
U hebt toegang tot een afzonderlijk blad in de verzameling werkbladen via het indexnummer of de naam. U kunt dus verwijzen naar een werkblad met de naam SheetTwo, door Worksheets ("SheetTwo") te gebruiken.
Werkbladobject
Het werkbladobject maakt deel uit van de verzameling werkbladen. Het werkbladobject bevat het bereikobject en andere objecten. Het ActiveSheet-object verwijst naar het blad dat actief is.
De volgende code verandert de paginarichting van het actieve blad in liggend:
12345 | Sub WijzigenOriëntatieNaarLandschap()ActiveSheet.PageSetup.Orientation = xlLandscapeEinde sub |
Merk op dat het Sheet-object het PageSetup-object bevat en de oriëntatie-eigenschap is ingesteld op xlLandscape.
Bereikobject
Het Range-object kan verwijzen naar een enkele cel of een reeks cellen in een werkblad. De volgende code laat zien hoe u de Range.Select-methode gebruikt om cellen A1:B1 te selecteren:
12345 | Sub selecterenArange()Bereik ("A1:B1"). SelecteerEinde sub |
Vormen Object
Het object Vormen verwijst naar de verzameling van alle vormen in een werkblad. De volgende code zou alle vormen op de ActiveSheet selecteren:
12345 | Sub selecterenAllTheShapes()ActiveSheet.Shapes.Alles selecterenEinde sub |
Vormobject
Het Shape Object is onderdeel van de Shapes collectie. De volgende code zou een afgeronde rechthoekige vorm maken en vervolgens de eigenschap name van het vormobject instellen:
123456789 | Sub UsingTheShapeObject()Met werkbladen(1).Shapes.AddShape(msoShapeRoundedRectangle, _200, 100, 80, 80).Name = "Een afgeronde rechthoek"Eindigt metEinde sub |
Excel VBA-objectmodel
Het VBA-objectmodel van Excel beschrijft de hiërarchie van alle objecten die u in Excel kunt gebruiken. U kunt bijvoorbeeld het object Workbooks gebruiken om indirect of direct naar alle andere objecten te verwijzen. De volgende code laat zien hoe u cel A1 selecteert met behulp van de hiërarchische structuur:
12345 | Sub met behulp vanTheHierachicalStructure()Werkmappen ("Boek1"). Werkbladen ("Blad1"). Bereik ("A1"). SelecteerEinde sub |
Een objectvariabele declareren en toewijzen
U kunt een object declareren en toewijzen aan een variabele met behulp van de trefwoorden Dim en Set.
Bijvoorbeeld:
12 | Dim ws als werkbladStel ws = ActiveWorkbook.ActiveSheet in |
De volgende code laat zien hoe u een Range-object declareert en toewijst aan een variabele:
12345678910111213141516 | Sub AssigningARangeToAVariable()Dim rngOne As ObjectStel rngOne = Bereik ("A1:C1") inrngOne.Font.Bold = TrueMet rngOne.Lettertype.Bold = True.Font.Name = "Calibri".Lettergrootte = 9.Lettertypekleur = RGB(35, 78, 125).Interieur.Kleur = RGB(205, 224, 180).Borders(xlEdgeBottom).LineStyle = xlContinuousEindigt metEinde sub |
Het resultaat is:
Het is essentieel om te begrijpen hoe objecten werken om VBA onder de knie te krijgen. U kunt meer leren met onze interactieve VBA-zelfstudie.