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.
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
|
Muuttujatyypit
Code Block |
---|
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
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ä