Wiki Markup |
---|
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 {code} h3. Muutamia hyödyllisiä |
Muutamia hyödyllisiä käskyjä
Syöttö, käsittely ja tulostus
Code Block |
---|
käskyjä h4. Syöttö, käsittely ja tulostus {code} 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 {code} h4. |
Muuttujatyypit
Code Block |
---|
Muuttujatyypit {code} 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 {code} |
Operaattorit
Code Block |
---|
h4. Operaattorit {code} 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 {code} h4. |
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 |
---|
{code} h4. Valintarakenteet {code} 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 {code} h4. Ehdot {code} |
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
Code Block |
---|
{code} h4. Toistorakenteet {code} Do While (ehto) 'toimenpiteet Loop For Laskuri = 1 To 10 Step 1 'toimenpiteet Next Laskuri {code} |
Esimerkki
...
solujen
...
arvojen
...
luvusta
...
sekä
...
for-silmukasta
Code Block |
---|
!Laskutusseuranta.gif|border=1,width=221,height=145! {code} Private Sub Laske_Click() Korkopros=InputBox("Anna korkoprosentti") For Laskuri = 2 To 10 Step 1 arvo = Cells(Laskuri, 4) Tyyppi = Cells(Laskuri, 2) Erapvm = Cells(Laskuri, 5) If (Erapvm < 0 And Tyyppi = 1) Then Cells(Laskuri, 12) = -Erapvm / 360 * arvo * Val(Korkpros) / 100 Else Cells(Laskuri, 12) = 0 End If Next Laskuri End Sub {code} |