VBA –ohjelmoinnin perusteet Ehtolause If If ehto = tosi Then tee tätä Else* tee sitä* End If Työkirjassa If(Ehto=Tosi;tätä;sitä) *Vapaaehtoinen
VBA –ohjelmoinnin perusteet Laajennettu ehtolause If If ehto = 1 Then MsgBox "1.valinta” ElseIf ehto = 2 Then MsgBox "2.valinta" Else MsgBox "Ei valintaa” End If
VBA –ohjelmoinnin perusteet Harjoitus I Tee ohjelma, joka lukee luvun solusta A1 ja kertoo luvun kahdella, mikäli luku on alle 100 Ohjelma käynnistetään napista Koodaa ohjelma moduuliin ja anna ohjelmalle nimeksi Sub KaannaLuvut() End Sub
VBA –ohjelmoinnin perusteet Ehtolause If (And ja Or) If ehto = 1 Or ehto = 2 Then MsgBox "1. tai 2.valinta" ElseIf ehto = 2 And ehto = 3 Then MsgBox "2. ja 3.valinta" Else MsgBox "Ei valintaa" End If
VBA –ohjelmoinnin perusteet Harjoitus II Tee ohjelma, joka lukee kaksi lukua soluista C1 ja D1 Mikäli luku solussa D1 on suurempi kuin C1, vaihda lukujen paikkoja keskenään, muussa tapauksessa jaa molemmat luvut kahdella Ohjelma käynnistetään napista
VBA –ohjelmoinnin perusteet Toistolause Do Loop While i = 1 Do Range("A" & i).Value = i i = i + 1 Loop While i < 100 Mitä kyseinen looppi tekee?
VBA –ohjelmoinnin perusteet Toistolause FOR For i = 1 To 100 Range("A" & i).Value = i Next Mitä kyseinen looppi tekee? Ikuisen loopin katkaisu <Ctrl+Break>
VBA –ohjelmoinnin perusteet Harjoitus III Tee ohjelma, joka tulostaa luvun 3 kertotaulun 100:n asti 1 * 3 = 3 2 * 3 = 6 3 * 3 = 9 … 100 * 3 = 300
VBA –ohjelmoinnin perusteet Harjoitus IV Tee ohjelma, joka tulostaa sarakkeen A 1. riville yhden *, 2. riville ** … ja 10. riville ********** * ** *** … **********
VBA –ohjelmoinnin perusteet Toimintaohjatut aliohjelmat VBA:ssa on useita toimintaohjattuja aliohjelmia, eli ohjelmia jotka käynnistyvät jostakin tapahtumasta. esim. Private Sub Workbook_Open() Private Sub Worksheet_Calculate() Private Sub Worksheet_Activate() Ohjelman nimi kertoo käynnistystavan
VBA –ohjelmoinnin perusteet Toimintaohjatut aliohjelmat Juuri toimintaohjattujen aliohjelmien takia VBA:lla on suhteellisen helppo kirjoittaa Viruksia! Jos haittaohjelma käynnistetään esim. Workbook_Open aliohjelmasta, ei käyttäjä välttämättä edes tiedä käynnistäneensä mitään muuta kuin Excelin
VBA –ohjelmoinnin perusteet Toimintaohjatut aliohjelmat Työkirjakohtaiset aliohjelmat ThisWorkbook Workbook
VBA –ohjelmoinnin perusteet Toimintaohjatut aliohjelmat Sivukohtaiset ohjelmat ThisWorksheet Worksheet
VBA –ohjelmoinnin perusteet Harjoitus V Tee ohjelma, joka kysyy käyttäjän nimen sivulle 1 tultaessa ja tulostaa nimen soluun A1 Käytä InputBoxia nimi = InputBox(”Anna nimesi”)
VBA –ohjelmoinnin perusteet Harjoitus VI Tee ohjelma, joka tallentaa tiedoston aina kun sivulta 3 poistutaan Vinkki: Nauhoita makro ja katso koodi sieltä
VBA –ohjelmoinnin perusteet Harjoitus VII Tee ohjelma, joka kirjoittaa sivulle 3, sarakkeeseen XFD, ensimmäiselle vapaalle riville tiedoston käyttäjän nimen ja sulkemisajan Christian Brade 23.11.2013 12:10 Application.UserName & ” ” & Now() Ctrl+nuoli ja suhteellinen liikkuminen
VBA –ohjelmoinnin perusteet Lomakkeet Esimerkki
VBA –ohjelmoinnin perusteet Lomakkeet Editorissa Insert – UserForm Lomakkeita tehdään helpottamaan tiedon hakemista ja syöttämistä sivuille Kontrollit ovat toimintaohjattuja Aliohjelman saa luotua tuplaklikkaamalla kontrollia. esim. Private Sub CommandButton1_Click()
VBA –ohjelmoinnin perusteet Label (Otsikko) -caption TextBox (Kirjoituslaatikko) –text ComboBox (Alasvetolaatikko) -text -.additem ”arvo” CheckBox (Valintaruutu) -caption -value (true/false) OptionButton (Valintanappi) -caption -ryhmään Framen avulla Image (Valokuva) –picture -koodissa LoadPicture() CommandButton (Nappi) -caption
VBA –ohjelmoinnin perusteet Harjoitus VIII. Tee oheinen laskuri TextBox ComboBox (.AddItem ”EUR”) CommandButton Label
VBA –ohjelmoinnin perusteet Lomakkeet Lomakkeen kutsu (ulkopuolelta) UserForm1.Show Lomakkeen sulkeminen (lomakkeesta) Unload Me
VBA –ohjelmoinnin perusteet Microsoft Visual Basic Help <F1> Helpin käyttäminen kannattaa opiskella. Avaa Visual Basic –editori ja paina F1 Voit myös hakea tietoa sanasta maalaamalla sen hiirellä ja painamalla F1