objekter i VBA
Objektorientert programmering (OOP for kort) er basert på ideen om at alt i programmering kan beskrives som et objekt. Disse objektene er ikke fysiske ting vi kan se i det virkelige liv, men virtuelle seg eksisterende i datamaskinens minne.
I de følgende timene, vil jeg skrive om ting knyttet til objekter, for eksempel egenskaper, metoder, hendelser og hierarki.
Søknad objekt og objekt hierarki
Application objektet representerer hele Excel-programmet. Det er plassert på toppen av gjenstanden hierarkiet og den inneholder alle andre objekt. . Følg denne leksjonen å lære mer
De vanligste stedene som stammer fra Program objektet er:
arbeidsbok
Window
Disse objektene kan inneholde andre objekter. La ’ s ta en arbeidsbok for eksempel. Hver arbeidsbok inneholder objekter, for eksempel:
Regneark
Window
Navn
Disse objektene kan også inneholde stedene. For eksempel kan et regneark inneholde følgende objekter:
Navn
Kommentar
link
henvisning til objekter
For å kunne arbeide med VBA-objekter, først må du lære hvordan du kan henvise til dem. Nedenfor finner du eksempler på hvordan du kan korte koden, så det vil være lettere å lese og enklere å skrive
Eksempel:.
Følgende kode er en referanse til verdien i celle B5. Det kan skrives på følgende form:
Application.Workbooks(„Book1.xlsx”).Worksheets(„Sheet1”).Range(„B5”).Value
I VBA, er programmet objektet alltid antatt. Det betyr at vår referanse kan skrives as:
Workbooks(„Book1.xlsx”).Worksheets(„Sheet1”).Range(„B5”).Value
Videre, hvis du ønsker å peke på det første regnearket i arbeidsboken du kan bruke:
arbeidsbøker („ Book1.xlsx ”) Regneark (1) .Range („ B5 &rdquo. .;) Verdi
Hvis du ikke ’ t referere til en bestemt arbeidsbok, Excel forutsetter at regnearket er i dag åpnet arbeidsbok:
regneark (1) .Range („ B5 ”) Verdi
Det samme med regnearket.. Hvis du mister ordet, vil Excel anta at området er i det aktive regnearket
Range („ B5 ”).. Verdi
Fordi Verdi behandles som standard eiendom I dette tilfellet kan vi også lage en referanse uten verdi eiendommen. Den endelige referanse vil være:
Range („ B5 ”)
Object Properties
Hver fysisk objekt har noen egenskaper. Det kan være farge, størrelse, vekt, navn og så videre. Men ikke bare objekter i det virkelige liv har egenskaper, også virtuelle VBA objekter har dem.
Det er tusenvis av eiendommer i Excel, kan noen av dem endres og de andre som er skrivebeskyttet. Du skjønner ’ t må huske dem alle. Du vil trolig bruke bare en liten brøkdel av de viktigste
Eksempel 1:.
Se på følgende eksempel. Det blir verdien fra celle B5 og viser det på MsgBox Dette er et resultat som genereres av makro I det andre eksemplet endre denne verdien til 1234. Dette vil gi oss følgende resultat. I forrige leksjon, Jeg presenterte objektegenskaper. I denne leksjonen skal jeg beskrive metoder. Metoden er en handling som er utført av et objekt La ’ s ta en real-life objekt:. en bil. Bilen har slike egenskaper som farge, fart, vekt, etc. Men i tillegg til dette er kan utføre handlinger, for eksempel start motor, kjøre, stoppe og så videre. I de følgende eksemplene, jeg beskrive noen metoder du kan bruke i Excel 2013. I følgende eksempel, vil vi fjerne celler . fra B2 til C5 For å gjøre dette, kan vi bruke følgende kode: Dette vil gi oss følgende resultat: Samlinger, samt andre objekter i Excel, kan bruke metoder. Følgende makro vil skape en ny arbeidsbok Denne metoden vil vise nummeret som forteller deg hvor mange arbeidsbøker er nå åpnet. En hendelse i Excel er et action (utført av en bruker) som kan utføre VBA-kode. Nedenfor finner du en eksempelliste over hendelser som kan utløse kjøring av kode. For å opprette arrangementet, må du først åpne Visual Basic Editor (VBE) ved å velge UTVIKLER >. > Kode > > Visual Basic, eller snarvegen Alt + F11. Når et nytt vindu vises, utføre følgende handlinger: Når du begynne å klikke forskjellige hendelser i listen, Excel vil automatisk gå inn i nye ubåter. Så lenge det er ingen kode i dem, de vant ’ t har noen effekt på regnearket. Du kan også slette dem hvis du don ’ t ønsker tomme ubåter å være synlig Denne koden vil markere celle A1 med en tilfeldig farge hver gang du aktiverer arbeidsbok . Du kan aktivere arbeidsbok når du åpner den, eller når du bytter fra et annet åpnet arbeidsbok.
vinduet.
Sub displayCellValue () cellValue = Regneark ("Ark1"). Range ("B5"). ValueMsgBox cellValueEnd Sub
Eksempel 2:.
Sub changeCellValue () Regneark ("Ark1"). Range ("B5"). Verdi = 1234End Sub
Objektmetoder
Eksempel 1:
Sub clearData () Range ("B2: C5"). ClearContentsEnd Sub
Eksempel 2:
Sub createWorkbook () Workbooks.AddEnd Sub
Eksempel 3:.
Sub countWorkbooks () MsgBox Workbooks.CountEnd Sub
Objekt Arrangementer
Aktivere eller deaktivere et objekt (regneark, vindu, etc.)
< li> Legge inn data i en celle.
Åpning eller lukking av arbeidsboken.
Lagre arbeidsboken.
Forekomst av en bestemt dato.
Bruk av en bestemt tastekombinasjon
Opprette en hendelse
Dobbeltklikk „ Thisworkbook ”.
Velg „ arbeidsbok ” fordi vi ønsker å utløse koden når noe med arbeidsboken skjer.
Klikk på hendelsen som du ønsker å kjøre koden.
KUNNGJØRING
Eksempel:.
Private Sub Workbook_Activate () r = WorksheetFunction.RandBetween (0, 255) g = WorksheetFunction.RandBetween (0, 255) b = WorksheetFunction. TILFELDIGMELLOM (0, 255) Range ("A1"). SelectWith Selection.Interior .Pattern = xlSolid .PatternColorIndex = xlAutomatic Color = RGB (r, g, b) End WithEnd SubPrivate Sub Workbook_Open () End Sub