Johdanto

VBA on lyhennys sanoista Visual Basic for Applications. Se on Microsoft Officen ohjelmien mukana tuleva ohjelmointikieli, jolla voidaan luoda ja muokata makroja tai lisätä ohjelmiin uusia toimintoja.

Ohjelmointi tehdään Microsoft Visual Basic-editorilla johon pääsee esim. Excelin sisältä näppäinyhdistelmällä ALT-F11. Jos nauhoitat Excelissä makron, syntyy uusi moduli. Editorissa moduleita voi tehdä itse valitsemalla Insert, Module.

 

Kuvassa moduli, johon on kirjoitettu koodia.

Syöttö, käsittely ja tulostus 1

Sub nimi()

'Määrittelyt
Dim etunimi, sukunimi, kokonimi As String

'Syöttö
etunimi = InputBox("Kirjoita etunimesi")
sukunimi = InputBox("Kirjoita sukunimesi")

'Käsittely
kokonimi = etunimi & " " & sukunimi

'Tulostus
MsgBox ("Nimesi on " & kokonimi)

End Sub

Muuttujatyypit

Dim KokonaislukuMuuttuja as Integer

Dim MerkkijonoMuuttuja as String

Dim MikatahansaMuuttuja as Variant

Dim DesimaalilukuMuuttuja 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

kókonaisosa = 5 \ 2

jakojaannos = 5 MOD 2

potenssi = 5 ^ 2

merkkijono = merkkijono1 & merkkijono2

merkkijono = merkkijono1 + merkkijono2

Syöttö, käsittely ja tulostus 2

Sub 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

Lomakkeet

Tee lomake editorissa  valitsemalla Insert, UserForm.

Muuta lomakkeen ominaisuuksia ja piirrä käyttöliittymä Controls-työkaluilla.

Lisää koodia kaksoisnäpäyttämällä kontrollia.

Lomakkeen automaattinen käynnistys

Tee moduli, ja lisää sinne koodi:


Sub Auto_open()
	lomake.show
End Sub

Linkit
Etusivu
Aki Taanila
Tampereen kaupungin Office 2007 ohjeita
Itä-Suomen yliopiston MS Excel 2007
Jyväskylän Yliopiston taulukkolaskenta
Sihteerin ja assistentin tietokoneoppaan excel-niksit
Ilpo Kuivasen taulukkolaskentatehtäviä
Microsoftin omia malleja
Microsoftin koulutusmateriaaleja
Yhteiskäyttö
Asta Havaskarin:
A-ajokorttitason harjoituksia
AB-ajokorttitason harjoituksia
Harri Honkaluoman Office 2007
VBA-perusteet erittäin lyhyesti
Excel-ohjelmoinnin sivusto
VBA for Excel (Macros)

Jouko Hautamäen Access
Open Office Calc tutorial