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.
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.
Code Block |
---|
auto_open()
Lomake.Show
End Sub
|
Muutamia hyödyllisiä käskyjä
Syöttö, käsittely ja tulostus
Code Block |
---|
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
|
MuuttujatyypitDim KokonaislukuMuuttuja as Integer
Code Block |
---|
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
Code Block |
---|
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()
Code Block |
---|
'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
Code Block |
---|
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
Code Block |
---|
'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
...
-tehtäviä