Paras VBA-opas (aloittelijoille), jota koskaan tarvitset

VBA(VBA programming) - ohjelmointialusta , joka toimii lähes kaikissa Microsoft Office -tuotteissa, on yksi tehokkaimmista työkaluista, joita kuka tahansa voi käyttää parantaakseen näiden tuotteiden käyttöä.

Tämä VBA -opas aloittelijoille näyttää, kuinka voit lisätä Developer - valikon Office - sovellukseesi, kuinka päästä VBA - editori-ikkunaan ja kuinka VBA -peruskäskyt ja -silmukat toimivat, jotta voit aloittaa VBA :n käytön Excelissä(Excel) , Wordissa(Word) , Powerpointissa(Powerpoint) , Outlook ja OneNote .

Tämä VBA -opas käyttää uusinta Microsoft Office -tuotteiden versiota. Jos sinulla on aikaisempi versio, saatat nähdä pieniä eroja kuvakaappauksista.

VBA-editorin käyttöönotto ja käyttö(How To Enable & Use The VBA Editor)

Missä tahansa tässä oppaassa käytetyssä Office - tuotteessa saatat huomata, että sinulla ei ole viitattua kehittäjävalikkoa(Developer) . Kehittäjävalikko on käytettävissä vain Excelissä(Excel) , Wordissa(Word) , Outlookissa(Outlook) ja Powerpointissa(Powerpoint) . OneNote ei tarjoa työkalua VBA -koodin muokkaamiseen sovelluksen sisällä, mutta voit silti viitata OneNote API :aan ollaksesi vuorovaikutuksessa OneNoten(OneNote) kanssa muista Office - ohjelmista. 

Opit tekemään tämän tulevasta Advanced VBA -oppaastamme.

  • Ota Kehittäjä(Developer) - valikko käyttöön missä tahansa toimistotuotteessa valitsemalla Tiedosto(File) - valikko ja valitsemalla vasemmasta(Options) navigointivalikosta Asetukset. 
  • Näet Asetukset(Options) -valikon ponnahdusikkunan. Valitse vasemmanpuoleisesta navigointivalikosta Mukauta nauhaa .(Customize Ribbon)

Vasemmanpuoleinen luettelo sisältää kaikki kyseisessä Office(Office) - sovelluksessa käytettävissä olevat valikot ja valikkokomennot . Oikealla oleva luettelo on tällä hetkellä saatavilla tai aktivoituja.

  • Sinun pitäisi nähdä Kehittäjä(Developer) oikealla olevassa luettelossa, mutta sitä ei aktivoida. Aktivoi (Just)kehittäjävalikko(Developer) valitsemalla valintaruutu .

  • Jos Kehittäjä(Developer) ei ole saatavilla oikealla, vaihda vasen Valitse komennot(Choose commands) avattavasta valikosta kohtaan Kaikki komennot(All Commands) . Etsi Developer luettelosta ja lisää valikko nauhaan valitsemalla (Ribbon)Add>> keskeltä .
  • Valitse OK , kun olet valmis.
  • Kun Kehittäjä(Developer) - valikko on aktiivinen, voit palata sovelluksesi pääikkunaan ja valita ylävalikosta  Kehittäjä .(Developer)
  • Valitse sitten Näytä koodi(View Code) nauhan Ohjaimet(Controls) - ryhmästä avataksesi VBA - editori-ikkunan.

  • Tämä avaa VBA - editori-ikkunan, johon voit kirjoittaa koodin, jonka opit seuraavissa osioissa.

  • Kokeile lisätä Kehittäjä(Developer) - valikko muutamiin päivittäin käyttämiisi Office -sovelluksiin. (Office)Kun olet valmis avaamaan VBA - editori-ikkunan, jatka tämän oppaan seuraavaan osaan.

Yleisiä VBA-ohjelmointivinkkejä aloittelijoille(General VBA Programming Tips for Beginners)

Huomaat, että kun VBA - editori avautuu, vasemman paneelin navigointivaihtoehdot näyttävät erilaisilta Office -sovellusten välillä.

Tämä johtuu siitä, että käytettävissä olevat objektit, joihin voit sijoittaa VBA -koodin, riippuvat siitä, mitä objekteja sovelluksessa on. Esimerkiksi Excelissä(Excel) voit lisätä VBA -koodin työkirja- tai arkkiobjekteihin. Wordissa(Word) voit lisätä VBA - koodin asiakirjoihin. Powerpointissa vain(Powerpoint) moduuleille.

Älä siis hämmästy erilaisista valikoista. VBA -koodin rakenne ja syntaksi on sama kaikissa sovelluksissa. Ainoa ero on kohteissa, joihin voit viitata, ja toiminnot, joita voit tehdä näille objekteille VBA - koodin kautta.

Ennen kuin sukeltaamme erilaisiin objekteihin ja toimiin, joita voit suorittaa niille VBA -koodin avulla, katsotaanpa ensin yleisintä VBA - rakennetta ja syntaksia, joita voit käyttää kirjoittaessasi VBA - koodia.

Mihin sijoittaa VBA-koodi(Where To Put VBA Code)

Kun olet VBA - editorissa, sinun on käytettävä muokkausikkunan yläosassa olevia kahta pudotusvalikkoa valitaksesi, mihin objektiin haluat liittää koodin ja milloin haluat koodin suoritettavan.

Jos esimerkiksi Excelissä(Excel) valitset Työtaulukko(Worksheet) ja Aktivoi(Activate) , koodi suoritetaan aina, kun laskentataulukko avataan. 

Muita laskentataulukkotoimintoja, joita voit käyttää VBA -koodin käynnistämiseen, ovat muun muassa laskentataulukon muuttuminen, sen sulkeminen (pois käytöstä), laskentataulukon laskutoimituksen suorittaminen ja paljon muuta.

Kun lisäät VBA -koodin editoriin, varmista aina, että sijoitat VBA -koodisi objektiin ja käytä oikeaa toimintoa, jolla haluat käynnistää kyseisen koodin.

VBA IF -lausunnot(VBA IF Statements)

IF-lause toimii VBA :ssa aivan kuten se toimii millä tahansa muulla ohjelmointikielellä.

IF-lauseen ensimmäisessä osassa tarkastellaan, onko ehto tai ehtojoukko tosi. Nämä ehdot voidaan yhdistää AND- tai OR-operaattorilla niiden linkittämiseksi.

Yksi esimerkki voisi olla tarkistaa, onko laskentataulukon arvosana "hyväksytty" arvosanan ylä- vai alapuolella, ja antaa hyväksytyn tai hylätyn tilan toiseen soluun.

If Cells(2, 2) > 75 Then Cells(2, 3) = “Pass” Else Cells(2, 3) = “Fail”

Jos et halua koko lausetta yhdelle riville, voit jakaa sen useille riveille lisäämällä rivien loppuun _-symbolin.

If Cells(2, 2) > 75 Then _
Cells(2, 3) = “Pass”  Else _
Cells(2, 3) = “Fail”

Tämän tekniikan käyttäminen voi usein helpottaa koodin lukemista ja virheenkorjausta.

VBA seuraaville loopeille(VBA For Next Loops)

IF-lauseet sopivat erinomaisesti yksittäisiin vertailuihin, kuten yllä oleva esimerkki yksittäisen solun tarkastelusta. Mutta entä jos haluat käydä läpi koko solualueen ja tehdä jokaiselle saman IF-lauseen?

Tässä tapauksessa tarvitset FOR - silmukan. 

Tätä varten sinun on käytettävä alueen pituutta ja kierrettävä sen pituuden läpi dataa sisältävien rivien määrällä.

Tätä varten sinun on määritettävä alueen ja solumuuttujat ja selattava niitä. Sinun on myös määritettävä laskuri, jotta voit tulostaa tulokset oikealle riville. Joten VBA -koodissasi olisi ensin tämä rivi.

Dim rng As Range, solu As Range (Dim rng As Range, cell As Range)
Dim rowCounter as Integer

Määritä alueen koko seuraavasti. 

Set rng = Range(“B2:B7”)
rowCounter = 2

Lopuksi voit luoda FOR -silmukan käydäksesi läpi jokaisen alueen solun ja tehdäksesi vertailun.

For Each cell In rng
   If cell.Value > 75 Then _
   Cells(rowCounter, 3) = "Pass" Else _
   Cells(rowCounter, 3) = "Fail"

   rowCounter = rowCounter + 1

Next cell

Kun tämä VBA-skripti(VBA script) on suoritettu, näet tulokset varsinaisessa laskentataulukossa.

VBA While Loops

A While - silmukka silmukkaa(Loop) myös useiden lauseiden läpi, aivan kuten FOR - silmukka, mutta silmukan jatkamisen ehto on ehto, joka pysyy tosi.

Voit esimerkiksi kirjoittaa saman FOR - silmukan yllä WHILE -silmukaksi yksinkertaisesti käyttämällä rowCounter-muuttujaa seuraavasti.

While rowCounter < rng.Count + 2
   If Cells(rowCounter, 2) > 75 Then _
   Cells(rowCounter, 3) = "Pass" Else _
   Cells(rowCounter, 3) = "Fail"
   rowCounter = rowCounter + 1
Wend

Huomautus: rng.Count + 2 vaaditaan, koska rivilaskuri alkaa numerosta 2 ja sen on päätyttävä riville 7, johon tiedot päättyvät. Alueen (B2:B7) määrä on kuitenkin vain 6, ja While-silmukka päättyy vasta, kun laskuri on SUUREMPI(GREATER) kuin laskuri – joten viimeisen rivin Laskurin arvon on oltava 8 (tai rng.Count + 2).

Voit myös määrittää While-silmukan seuraavasti:

While rowCounter <= rng.Count + 1

Voit kasvattaa aluemäärää (6) vain yhdellä, koska kun rowCounter-muuttuja saavuttaa datan lopun (rivi 7), silmukka voi päättyä.

VBA Do While and Do Until Loops

Do While- ja Do Until -silmukat ovat lähes identtisiä While-silmukan kanssa, mutta toimivat hieman eri tavalla.

  • While Loop tarkistaa , onko ehto tosi silmukan alussa.
  • Do-While Loop tarkistaa , onko ehto tosi sen jälkeen, kun silmukan lauseet on suoritettu.
  • Do - Until Loop(Do-Until Loop) tarkistaa, onko ehto edelleen epätosi silmukan suorittamisen jälkeen.

Tässä tapauksessa kirjoitat yllä olevan While-silmukan uudelleen seuraavasti Do-While-silmukaksi.

Do
   If Cells(rowCounter, 2) > 75 Then _
   Cells(rowCounter, 3) = "Pass" Else _
   Cells(rowCounter, 3) = "Fail"
   
   rowCounter = rowCounter + 1
Loop While rowCounter < rng.Count + 2

Tässä tapauksessa logiikka ei juurikaan muutu, mutta jos haluat varmistaa, että logiikkavertailu tapahtuu sen jälkeen, kun kaikki lauseet on suoritettu (jotta ne kaikki voivat suorittaa riippumatta siitä, mitä ainakin kerran), niin Do-While tai Do-Until -silmukka on oikea vaihtoehto.

VBA Valitse tapauslausunnot(VBA Select Case Statements)

Viimeinen loogisen lauseen tyyppi, joka sinun on ymmärrettävä aloittaaksesi VBA - koodin jäsentämisen, ovat Select Case -lauseet.

Kun otetaan huomioon yllä oleva esimerkki, oletetaan, että haluat arviointimenetelmän, joka ei ole vain hylätty. Sen sijaan haluat määrittää kirjainarvosanan A–F.

Voit tehdä tämän seuraavalla Select Case -lausekkeella:

For Each cell In rng
   
   Select Case cell

   Case 95 To 100
      Cells(rowCounter, 3) = "A"
   Case 85 To 94
      Cells(rowCounter, 3) = "B"
   Case 75 To 84
      Cells(rowCounter, 3) = "C"
   Case 65 To 74
      Cells(rowCounter, 3) = "D"
   Case 0 To 64
      Cells(rowCounter, 3) = "F"
   End Select

   rowCounter = rowCounter + 1

Next cell

Tuloksena oleva laskentataulukko tämän VBA -komentosarjan suorittamisen jälkeen näyttää alla olevalta.

Nyt tiedät kaiken, mitä sinun tulee tietää aloittaaksesi VBA :n käytön Microsoft Office -sovelluksissasi.



About the author

Olen tietokoneteknikko, jolla on yli 10 vuoden kokemus, josta 3 vuotta 店員. Minulla on kokemusta sekä Apple- että Android-laitteista ja olen erityisen taitava tietokoneiden korjaamisessa ja päivittämisessä. Nautin myös elokuvien katsomisesta tietokoneellani ja iPhonen käyttämisestä kuvien ja videoiden ottamiseen.



Related posts