Johdanto
VBA on lyhennys sanoista Visual Basic for Applications. Se on Microsoft Officen ohjelmien mukana tuleva ohjelmointikieli, jolla voidaan luoda ja muokata makroja tai lisätä ohjelmiin uusia toimintoja.
Ohjelmointi tehdään Microsoft Visual Basic-editorilla johon pääsee esim. Excelin sisältä näppäinyhdistelmällä ALT-F11. Jos nauhoitat Excelissä makron, syntyy uusi moduli. Editorissa moduleita voi tehdä itse valitsemalla Insert, Module.
Kuvassa moduli, johon on kirjoitettu koodia.
Syöttö, käsittely ja tulostus 1
Sub nimi()
'Määrittelyt
Dim etunimi, sukunimi, kokonimi As String
'Syöttö
etunimi = InputBox("Kirjoita etunimesi")
sukunimi = InputBox("Kirjoita sukunimesi")
'Käsittely
kokonimi = etunimi & " " & sukunimi
'Tulostus
MsgBox ("Nimesi on " & kokonimi)
End Sub
Muuttujatyypit
Dim KokonaislukuMuuttuja as Integer
Dim MerkkijonoMuuttuja as String
Dim MikatahansaMuuttuja as Variant
Dim DesimaalilukuMuuttuja 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
kókonaisosa = 5 \ 2
jakojaannos = 5 MOD 2
potenssi = 5 ^ 2
merkkijono = merkkijono1 & merkkijono2
merkkijono = merkkijono1 + merkkijono2
Syöttö, käsittely ja tulostus 2
Sub 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
Tehtävät
Tee Ratolin tehtävät VBA-kielellä. Palauta tehtävät.
Lomakkeet
Tee lomake editorissa valitsemalla Insert, UserForm.
Muuta lomakkeen ominaisuuksia ja piirrä käyttöliittymä Controls-työkaluilla.
Lisää koodia kaksoisnäpäyttämällä kontrollia.
Tehtävät
1) Tee Ratolin
tehtävät
VBA-kielellä lomakeversiona. Tee kaikki tehtävät yhteen työkirjaan,
josta ne käynnistetään painikkeilla. Palauta tehtävät .
2) Tee Kivi, Paperi, Sakset -peli. Satunnaisluvun saa
funktiolla rnd(). Satunnaisluvut
1-3 saa: luku =
int(rnd()*3+1)
3a) Tee makro, joka aktivoi 20 x 20 solun alueen suurimman solun.
3b) Tee makro, joka värittää 20 x 20 solun alueen suurimman solun
siniseksi ja pienimmän punaiseksi.
3c) Tee makro, joka värittää valitun alueen suurimman solun siniseksi
ja pienimmän punaiseksi.
4) Tee jatsipeli, miinaharava, oma sovellus
tai kaikki.
5) Tee ajanottojärjestelmä. Taulukkoon tarvitaan
osallistujan nimi, lähtöaika ja saapumisaika. Ajat saadaan funktiolla
now(). Tee lopuksi tulostaulu.
Vaihtoehto: Tee ja palauta AB-ajokorttitason harjoituksista tehtävät 16-23 ja kertaustehtävät.