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 |
}
auto_open()
Lomake.Show
End Sub
|
Muutamia hyödyllisiä käskyjä
Syöttö, käsittely ja tulostus
Code Block |
---|
{code} h3. Muutamia hyödyllisiä 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 |
Muuttujatyypit
Code Block |
---|
{code} h4. 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 |
Operaattorit
Code Block |
---|
{code} 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 |
} '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
|
Ehdot
Code Block |
---|
{code} h4. Ehdot {code} '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} |