Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Muuttujat ja tietotyypit | VBA Fundamentals
Excel VBA Liiketoiminnan Automaatioon

Muuttujat ja tietotyypit

Pyyhkäise näyttääksesi valikon

Jokainen kirjoittamasi proseduurin tarvitsee paikan, jossa säilyttää arvoja työn aikana — esimerkiksi asiakkaan nimi, juokseva summa tai kyllä/ei-lippu. Tätä tarkoittaa muuttuja: nimetty laatikko muistissa, johon voit asettaa arvon ja lukea sen myöhemmin. Luot muuttujan komennolla Dim (lyhenne sanasta "dimension"), ja kerrot VBA:lle etukäteen, minkä tyyppistä tietoa se sisältää:

Dim productName As String
Dim currentStock As Integer
Dim unitPrice As Double

Jokainen rivi varaa nimikoidun paikan: productName voi sisältää vain tekstiä, currentStock vain kokonaislukuja, unitPrice vain desimaalilukuja. Tyypin määrittely etukäteen ei ole byrokratiaa — se mahdollistaa sen, että VBA havaitsee virheet ennen kuin niistä tulee bugeja. Jos yrität suorittaa productName = 47, VBA pysäyttää sinut heti tyyppivirheeseen, sen sijaan että tallentaisi väärän arvon ja aiheuttaisi hämmennystä myöhemmin.

Yleiset tietotyypit

Nyrkkisääntö: käytä Long-tyyppiä laskureissa ja rivinumeroissa Integer-tyypin sijaan — se ei ole hitaampi nykyaikaisessa Excelissä, eikä se ylivuoda suurissa tietomäärissä. Näet Dim i As Long kaikkialla tällä kurssilla.

Option Explicit

Lisää tämä yksittäinen rivi jokaisen moduulin alkuun, ennen yhtäkään Sub-määritystä. Se muuttaa yhden asian: VBA ei enää suostu suorittamaan riviä, jossa käytetään muuttujaa, jota ei ole ensin määritelty Dim-komennolla:

Option Explicit
 
Sub Example()
    Dim total As Double
    total = 100        ' works — declared above
    toatl = 200        ' typo — Option Explicit catches this at compile time
End Sub

Ilman Option Explicit-määritystä kirjoitusvirhe luo huomaamatta uuden muuttujan nimeltä total, ja saatat käyttää kaksikymmentä minuuttia ihmetellen, miksi total ei koskaan muutu. Tämä yksittäinen tapa ehkäisee enemmän bugeja kuin mikään muu tässä luvussa.

Vakiot

Vakiot ovat nimettyjä arvoja, jotka eivät muutu koodin suorituksen aikana — ihanteellisia esimerkiksi verokannoille tai raja-arvoille:

Const REORDER_THRESHOLD As Integer = 20

Kun käytät REORDER_THRESHOLD-vakioita sen sijaan, että kirjoittaisit 20 joka paikkaan, mahdollisen liiketoimintasäännön muuttuessa riittää yhden rivin muokkaus koko koodin sijaan.

Tehtävä

  1. Kirjoita tiedostoon Section_2_VBA_Fundamentals.xlsm Sub, jossa määritellään String-muuttuja tuotteen nimelle, Double hinnalle ja Integer varastosaldolle.
  2. Aseta niille arvot tuotteelle USB-C Hub kirjoittamalla arvot suoraan.
  3. Näytä kaikki kolme yhdessä viestissä käyttämällä MsgBox-komentoa ja yhdistämällä arvot yhteen merkkijonoon.
  4. Lisää Const LOW_STOCK As Integer = 20 Sub-rutiinisi yläpuolelle ja käytä sitä MsgBox-viestissä vertaamalla sitä varastosaldoon.
Vihje
expand arrow
  1. Tarvitset kolme Dim-riviä eri tyypeillä — katso tarvittaessa uudelleen kuvaa 2.1: Dim name As Type.
  2. USB-C Hubin rivi: Hinta 39.50, Varasto 44. Aseta nämä suoraan: price = 39.50.
  3. Yhdistäminen tehdään &-merkillä, ei +. Rakenna merkkijono osissa: "Name: " & productName & ", Price: " & price.
  4. Vakiot määritellään Sub-rutiinien ulkopuolelle, moduulin alkuun heti Option Explicit-rivien jälkeen. Vertaile stockCount-muuttujaa ja LOW_STOCK-vakioita tavallisella > tai < -vertailulla MsgBox-merkkijonossa — If-ehtolauseita ei vielä tarvita, riittää että näytät molemmat arvot, jotta voit vertailla niitä silmämääräisesti.
Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 2. Luku 1

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

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

Osio 2. Luku 1
some-alt