Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Excelin Objektimallin Ymmärtäminen | Introduction to VBA and the Excel Object Model
Excel VBA Liiketoiminnan Automaatioon

Excelin Objektimallin Ymmärtäminen

Pyyhkäise näyttääksesi valikon

Jokainen Excelissä kirjoittamasi VBA-rivi on lause objekteista: jokin on olemassa (Application, Workbook, Worksheet, Range), ja joko luet sen ominaisuuden tai pyydät sitä suorittamaan jonkin metodin. Kun tämä hierarkia avautuu, loppu kielestä on lähinnä sanastoa.

Hierarkian lukeminen

  • Application — koko käynnissä oleva Excel-ohjelma; jokaisen hierarkian ylin taso;
  • Workbooks — kaikkien avoinna olevien tiedostojen kokoelma; yksittäinen tiedosto on Workbook, esim. Section_1_VBA_Intro.xlsm;
  • Worksheets — työkirjan välilehtien kokoelma; yksittäinen välilehti on Worksheet, esim. "Employees";
  • Range — yksi solu, solualue, kokonainen rivi tai kokonainen sarake;
  • Cells / Value — varsinainen tieto, joka sijaitsee Range-alueella.

Koko ketjua Applicationista alaspäin tarvitsee harvoin kirjoittaa — VBA olettaa, että tarkoitat aktiivista työkirjaa ja aktiivista välilehteä, ellet toisin määrittele — mutta objektien nimeäminen tarkasti erottaa hauraan koodin luotettavasta. Vertaa näitä kahta tapaa kirjoittaa sama ohje:

' Fragile — depends on whatever sheet happens to be active
Range("F2").Value = 65000
 
' Reliable — states exactly which workbook and sheet, no matter what's on screen
ThisWorkbook.Worksheets("Employees").Range("F2").Value = 65000

Toinen versio toimii edelleen, vaikka käyttäjällä olisi kolme muuta työkirjaa auki ja eri taulukko valittuna — tapa, jolla on valtava merkitys, kun makrosi kasvavat muutamaa riviä pidemmiksi. Tulet käyttämään ThisWorkbook.Worksheets("SheetName") tällä tavalla jatkuvasti loppukurssin ajan.

Objektisuhteiden navigointi Immediate-ikkunassa

Immediate-ikkuna (Näytä → Immediate-ikkuna tai Ctrl+G VBE:ssä; ^ ⌘ G Macilla) mahdollistaa yksittäisen koodirivin testaamisen ilman, että sitä tarvitsee sijoittaa Sub-rakenteeseen.

carousel-imgcarousel-img

Kirjoita rivi, joka alkaa kysymysmerkillä, ja paina Enter nähdäksesi tuloksen välittömästi. Kokeile näitä komentoja tiedostolla Section_1_VBA_Intro.xlsm:

?ThisWorkbook.Name
?ThisWorkbook.Worksheets("Employees").Range("B3").Value
?ThisWorkbook.Worksheets("Employees").Range("A1").CurrentRegion.Address
?ThisWorkbook.Worksheets.Count

Kolmas rivi esittelee CurrentRegion-ominaisuuden, joka laajentaa yksittäisestä solusta koko yhtenäiseen tietolohkoon sen ympärillä.

Tehtävä

  1. Kirjoita Välitön ikkuna -ikkunaan yksi rivi, joka tulostaa Olivia Brownin (rivi 4) tehtävän ilman, että klikkaat solua ensin — viittaa siihen suoraan objektihierarkian kautta.
  2. Kirjoita toinen rivi, joka tulostaa, kuinka monta riviä Employees-taulukossa on käyttäen CurrentRegion.Rows.Count.
Vihje
expand arrow

Viittaa siihen näin: ThisWorkbook.Worksheets("Employees").Range("D4").Value — rivi 4 on Olivia Brown, sarake D on tehtävä.

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 1. Luku 4

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Osio 1. Luku 4
some-alt