Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 4.0

VBA lyhyesti

\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ä