Excel VBA -objekt hänvisar till enskilda "enheter" som består av kod och data. Själva Excel -applikationen är ett objekt, liksom arbetsböcker, kalkylblad, cellområden och former. Varje objekt har tillhörande egenskaper och metoder. Objekt kan också innehålla andra objekt och samlingsobjektet används för att referera till en grupp av samma Excel -objekt.
I den här självstudien kommer vi att titta på några vanliga Excel -objekt.
Applikationsobjekt
Programobjektet avser hela Excel -programmet. Programobjektet innehåller arbetsbokobjektet.
Följande kod använder egenskapen WindowState för applikationsobjektet för att ställa in Excel -fönstret till maximal tillgänglig storlek:
12345 | Sub MaximeringTheExcelWindow ()Application.WindowState = xlMaximizedAvsluta Sub |
Arbetsböcker Objekt
Objektet Workbooks refererar till samlingen av alla Excel -arbetsböcker som för närvarande är öppna.
Följande kod använder metoden Workbooks.Add för att skapa en ny arbetsbok och lägga till den i samlingen:
12345 | Sub Lägga tillANewWorkbookToTheWorkbooksCollection ()Arbetsböcker.Lägg tillAvsluta Sub |
Du kan komma åt en enskild arbetsbok i arbetsboksamlingen genom dess indexnummer eller namn. Så du kan hänvisa till en arbetsbok som heter ExcelWb, med hjälp av arbetsböcker ("ExcelWB").
Arbetsbokobjekt
Arbetsbokobjektet är en del av arbetsboksamlingen. Arbetsbokobjektet innehåller kalkylbladssamlingen (kalkylblad) och bladsamlingen (kalkylblad, diagramark och makroark). ActiveWorkbook -objektet hänvisar till den aktiva arbetsboken.
Följande kod använder metoden ActiveWorkbook.Save för att spara den aktuella aktiva arbetsboken:
12345 | Sub SavingTheWorkbook ()ActiveWorkbook.SaveAvsluta Sub |
Ark Objekt
Arkobjektet refererar till samlingen av alla kalkylblad, diagramark och makroark i en arbetsbok. Följande kod använder metoden Sheets.Add för att lägga till ett nytt kalkylblad som heter ExtraSheet efter det sista kalkylbladet i arbetsboken:
123456 | Sub AddingANewSheet ()ActiveWorkbook.Sheets.Add (After: = ActiveWorkbook.Worksheets (Worksheets.Count), Count: = 1, _Typ: = xlWorksheet) .Name = "ExtraSheet"Avsluta Sub |
Observera syntaxen för Sheets.Add -metoden är:
Ark. Lägg till (Innan, Efter, Räkna, Typ) var:
-Before är valfritt och anger att det nya bladet ska läggas till före ett befintligt ark.
-After är valfritt och anger att det nya bladet ska läggas till efter ett befintligt ark.
-Count är valfritt och anger antalet ark som ska läggas till.
-Typ är valfri och anger bladtypen. xlWorksheet skulle lägga till ett nytt kalkylblad, xlChart skulle lägga till ett nytt diagramblad och xlExcel4MacroSheet eller xlExcel4IntlMacroSheet skulle lägga till ett nytt makrosheet. Om det är tomt används standard xlWorksheet.
Du kan komma åt ett enskilt blad i Sheets -samlingen genom dess indexnummer eller namn. Så du kan hänvisa till ett kalkylblad som heter SheetOne, med hjälp av Sheets ("SheetOne").
Arbetsblad Objekt
Objektet Arbetsblad refererar till samlingen av alla kalkylblad i en arbetsbok. Följande kod använder arbetsbladet. Lägg till metod för att lägga till ett nytt kalkylblad:
12345 | Sub AddingANewSheet ()Arbetsblad. Lägg tillAvsluta Sub |
Du kan komma åt ett enskilt blad i arbetsbladssamlingen genom dess indexnummer eller namn. Så du kan hänvisa till ett kalkylblad som heter SheetTwo, med hjälp av kalkylblad ("SheetTwo").
Arbetsblad Objekt
Objektet i kalkylbladet är en del av arbetsbladssamlingen. Objektet i kalkylbladet innehåller intervallobjektet och andra objekt. ActiveSheet -objektet refererar till arket som är aktivt.
Följande kod ändrar sidorienteringen för det aktiva arket till liggande:
12345 | Sub ChangingOrientationToLandscape ()ActiveSheet.PageSetup.Orientation = xlLandscapeAvsluta Sub |
Observera att Sheet -objektet innehåller PageSetup -objektet och dess orienteringsegenskap är inställd på xlLandscape.
Områdeobjekt
Range -objektet kan referera till en enda cell eller en uppsättning celler i ett kalkylblad. Följande kod visar hur du använder Range.Select -metoden för att markera cellerna A1: B1:
12345 | Sub SelectingArange ()Område ("A1: B1"). VäljAvsluta Sub |
Former Objekt
Objektet Former refererar till samlingen av alla former i ett kalkylblad. Följande kod skulle välja alla former på ActiveSheet:
12345 | Sub SelectingAllTheShapes ()ActiveSheet.Shapes.SelectAllAvsluta Sub |
Formobjekt
Shape Object är en del av Shapes -samlingen. Följande kod skulle skapa en rundad rektangelform och sedan ange egenskapen namn på formobjektet:
123456789 | Sub UsingTheShapeObject ()Med kalkylblad (1) .Shapes.AddShape (msoShapeRoundedRectangle, _200, 100, 80, 80).Name = "En rundad rektangel"Sluta medAvsluta Sub |
Excel VBA -objektmodell
Excels VBA -objektmodell beskriver hierarkin för alla objekt du kan använda i Excel. Du kan till exempel använda objektet Workbooks för att hänvisa till alla andra objekt indirekt eller direkt. Följande kod visar hur du väljer cell A1 med den hierarkiska strukturen:
12345 | Sub UsingTheHierachicalStructure ()Arbetsböcker ("Bok1"). Arbetsblad ("Ark1"). Område ("A1"). VäljAvsluta Sub |
Deklarera och tilldela en objektvariabel
Du kan deklarera och tilldela ett objekt till en variabel med hjälp av Dim och Set sökord.
Till exempel:
12 | Dim ws som kalkylbladAnge ws = ActiveWorkbook.ActiveSheet |
Följande kod visar hur du deklarerar och tilldelar ett intervallobjekt till en variabel:
12345678910111213141516 | Sub AssigningARangeToAVariable ()Dim rngOne som objektStäll in rngOne = Range ("A1: C1")rngOne.Font.Bold = SantMed rngOne.Font.Bold = Sant.Font.Name = "Calibri".Font.Size = 9.Font.Color = RGB (35, 78, 125).Interior.Color = RGB (205, 224, 180).Borders (xlEdgeBottom) .LineStyle = xlContinuousSluta medAvsluta Sub |
Resultatet är:
Det är viktigt att förstå hur objekt fungerar för att behärska VBA. Du kan lära dig mer med vår interaktiva VBA -handledning.