You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 6 Next »

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.

auto_open()
Lomake.Show
End Sub

Muutamia hyödyllisiä käskyjä

Syöttö, käsittely ja tulostus

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

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

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()

'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

Esimerkki solujen arvojen luvusta sekä for-silmukasta

 Private Sub Laske_Click()
 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 * Korkpros.Value / 100
    Else
        Cells(Laskuri, 12) = 0
    End If
 Next Laskuri
End Sub
  • No labels
You must log in to comment.