VBA lyhyesti
VBA on Microsoftin kieli Office sovellusten automatisointiin. Lyhyesti sanottuna VBA:lla voi tehdä lomakkeita, jotka sisältävät eräänlaista Basic-koodia. Koodilla on helppo viitata soluihin ja koodia voi tuottaa nauhoittamalla manuaalisia toimintoja Office ovelluksissa. Täältä esimerkiksi löytyy lisää apuja http://www.excel-vba.com/excel-vba-solutions-beginners.htm
Tyypillisesti VBA-osuus koostuu aliohjelmista sub ja käyttäjän lomakkeista "UserForm". Käyttäjän lomake saadaan ohjelmaa käynnistettäessä auki kirjoittamalla makro.
auto_open() Lomake.Show End Sub
Muutamia hyödyllisiä käskyjä
Syöttö, käsittely ja tulostus
Sub TietojenKysely() 'Muuttujien esittely Dim etunimi, sukunimi, nimi As String 'Tietojen syotto etunimi = InputBox("Kirjoita etunimesi") sukunimi = InputBox("Kirjoita sukunimesi") 'Tietojen yhdistaminen nimi = etunimi & " " & sukunimi 'Tulostus MsgBox ("Nimesi on " & nimi) End Sub
Muuttujatyypit
Dim KokonaislukuMuuttuja as Integer Dim Merkkijono as String Dim Mikatahansa as Variant 'Variant muttuja hyväksyy kaikki tyypit Dim Desimaaliluku as Double Dim KokonaislukuTaulukko(1 to 10) As Integer Const Vakio as Integer = 10
Operaattorit
summa = 5 + 2 erotus = 5 - 2 tulo = 5 * 2 osamaara = 5 / 2 kokonaisosa = 5 \ 2 jakojaannos = 5 MOD 2 potenssi = 5 ^ 2 merkkijono = merkkijono1 & merkkijono2 merkkijono = merkkijono1 + merkkijono2
Syöttö, käsittely ja tulostus 2Sub laskutoimitus()
'Muuttujien määrittelyt Dim luku1, luku2, tulos As Double 'Syöttö luku1 = InputBox("Kirjoita 1. luku") luku2 = InputBox("Kirjoita 2. luku") 'Käsittely tulos = Val(luku1) + Val(luku2) 'Tulostus MsgBox ("Summa on " & Str(tulos)) End Sub
Valintarakenteet
If (ehto) Then ' toiminto End If If (ehto) Then ' toiminto 1 Else ' muuten ' toiminto 2 End If If (ehtolause1) Then ' toiminto 1 Elseif (ehtolause2) Then ' toiminto 2 Else ' muuten ' toiminto 3 End If Select Case TestiArvo Case Is >= 100 ' toiminto 1 Case Is >= 50 ' toiminto 2 Case Is >= 0 ' toiminto 3 Case Else ' muuten ' toiminto 4 End Select
Ehdot
'Yhtä suuri kuin Luku1 = Luku2 'Pienempi kuin Luku1 < Luku2 'Suurempi kuin Luku1 > Luku2 'Pienempi tai yhtä suuri kuin Luku1 <= Luku2 'Pienempi tai yhtä suuri kuin Luku1 >= Luku2 'Erisuuri kuin Luku1 <> Luku2 'Tosi jos molemmat ehdot toteutuvat ehto1 AND ehto2 'Tosi jos yksikin ehto toteutuu ehto1 OR ehto2
Toistorakenteet
Do While (ehto) 'toimenpiteet Loop For Laskuri = 1 To 10 Step 1 'toimenpiteet Next Laskuri