Lataa esitys
Esittely latautuu. Ole hyvä ja odota
1
T-106.1061 Tietotekniikan työkurssi
Luento 3 VBA 1
2
Luennon sisältö tieto ja tietokone ohjelmalla ohjataan tietokonetta
ohjelmointikielen perustoiminnot tiedon siirto ohjelman ja ulkomaailman välillä tiedon tallentaminen matemaattiset toiminnot vertailutoiminnot ohjelman suorituksen ohjaaminen ohjelman rakenteen määrittely kielen määrittely Visual Basic for Applications ja sen perustoiminnot
3
Luennon tavoitteet tiedon merkitys ja tietokoneen toiminta tulee kerrattua ymmärrät, mitä ohjelmointi on ja mitä sen avulla pystytään tekemään ymmärrät VBA:n toimintaperiaatteen opit ohjelmoinnin perustoiminnot VBA:ssa opit tekemään yksinkertaisia VBA ohjelmia
4
Ihminen ja tietosisältö
Ihmisen tuottama tietosisältö: Nonverbaalinen äänet signaalit toiminta kosketukset Verbaalinen puhe kirjoitus Ihmisen tulkitsema tietosisältö: valo ääni haju maku tunto tasapaino sisäistoiminnot Tietosisällön varastointi: fyysisesti havaittava sähköisesti tallennettu optisesti tallennettu muut tavat
5
Tietokone tietokone on laite, joka käsittelee tietosisältöä
muuttaa syötteen halutuksi tulosteeksi varastoi tietosisältöä tietosisältö on tietokoneessa digitaalisessa binäärimuodossa tietokoneen toiminta perustuu muistipaikkojen käyttöön tietokone suorittaa käyttäjän ohjelmoimia ohjelmia tietokoneen voima perustuu asioiden toistoon
6
Muisti ja tallennusyksikkö Keskusyksikkö – Central Processing Unit CPU
Tietokoneen rakenne Muisti ja tallennusyksikkö RAM ROM kiintolevyt nauhat CD-ROM levykkeet Keskusyksikkö – Central Processing Unit CPU kontrolli- yksikkö prosessori- Syöttö ja tulostus Input/Output I/O Syöttölaitteet näppäimistö hiiri Tulostuslaitteet näyttö printteri
7
Ohjelma on tulkki tietokoneen ja ihmisen välillä
Ohjelmointi konekieli symbolinen konekieli korkean tason ohjelmointikieli C, C++ ja C# Java Delphi VBA sovellukset Word Excel PowerPoint Access
8
Tieto- sisällön käsittely
Tietokoneen toiminta Syöte Tieto- sisällön käsittely Tuloste Tallennus
9
Ohjelmoinnin hyödyt usein toistuvien toimintojen automatisointi
toisille tehtävien sovellusten tekeminen saadaan tehtyä räätälöityjä sovelluksia yksinkertaisesti saadaan tietokone toimimaan käyttöjärjestelmä kaikki sovellukset tietoliikenne
10
VBA -ohjelmointikieli
kehitetty Windowsiin – erityisesti Officeen yhdenmukainen kehitysympäristö ja yhtenäinen lausekieli kaikissa sovelluksissa käyttää hyväksi Office-ohjelmien toimintoja helppokäyttöinen sisältää automaattisia toimintoja makrojen nauhoittaminen mahdollista kattavat help-toiminnot
11
VBA:n rakenne objekteja voidaan käyttää eri ohjelmissa
Sovellus Sovelluksen toiminnot ja laajennukset Työkirja Taulukkosivu Graafinen objekti Ikkuna Nimetty alue objekteja voidaan käyttää eri ohjelmissa yhteisiä objekteja on monia viitataan isä.poika.pojanpoika Solu Grafiikan objektit Solun arvo Solumuotoilu
12
VBA -editori Office 97:ssa, 2000:ssa, 2003:ssa ja 2007:ssä yhtenäinen editori käynnistetään Developer > Code > Visual Basic ALT+F11 editorissa useita ikkunoita (View-valikko) projekti-ikkuna (moduulit) koodi-ikkuna (ohjelmakoodi) ominaisuus-ikkuna työkalurivi
13
VBA Officen sovelluksissa
Visual Basic for Applications, VBA ohjelmakoodi tallentuu moduuleihin, jotka näkyvät projekti-ikkunassa esim. jokaista Excelin työkirjan sivua kohti on oma moduulinsa yleisemmät funktiot ja makrot kirjoitetaan erillisiin moduuleihin voidaan tehdä funktioita suoraan Excelin käyttöön makroja toimintasarjoja varten mahdollistaa monien monimutkaistenkin sovellusten tekemisen
14
VBA –editori Yleisnäkymä
15
Projekti -ikkuna Word/Excel yms. objektit UserFormit Moduulit
Uuden moduulin luominen hiiren oikealla näppäimellä (Insert > Module) Koko projektikokonaisuus Saman aiheen proseduurit ja funktiot omissa moduleissa
16
Ominaisuudet (Properties)
Valitun objektin ominaisuudet esim. nimi, väri, koko Aakkostettuna tai kategorioittain Näkyvillä vain valitun objektin sisältämät ominaisuudet
17
Ohjelmakoodi (Code) Valitun moduulin koodi
Ensimmäisenä globaalit muuttujat Aliohjelmat ja funktiot peräjälkeen Väliviiva välissä Värikoodit: Varatut sanat - sininen Koodi - musta Virhe - punainen Kommentti - vihreä
18
Paikalliset muuttujat (Locals)
Kaikki paikalliset (eli suoritettavassa ohjelmassa esitellyt) muuttujat ja niiden arvot Kätevä debuggauksessa Taulukko-muuttujat puurakenteisena
19
Watches Voi asettaa “vahteja”
Muuttujien tai monimutkaisten lausekkeiden arvojen tarkkailu Ohjelman pysäyttäminen tosi-ehtoon tai arvon muuttumiseen Kätevä debuggauksessa
20
Suorita heti (Immediate)
Välitön käskyn suorittaminen Funktioiden testaus Muuttujien arvot ? = Tulostaa muuttujan tai lausekkeen arvon
21
Objektiselain (Object Browser)
Kaikki objektit Propertyt Metodit Eventit
22
Developer -valikko Makrojen nauhoitus Eri objektien 'piirtäminen’
Suunnittelutila (Design Mode)
23
VBA -ohjelman käynnistäminen
forms-toiminnot painikkeet valikot käynnistäminen sovelluksesta funktion kutsu suoraan Excelin solusta automaattinen käynnistys käynnistämällä VBA -editorista VBA –koodista / aliohjelmasta makrolistasta VBA –editorista työkaluriviltä omasta valikosta
24
Automaattinen käynnistys
liittyvät tiettyihin VBA:n objekteihin ennalta määriteltyjen tapahtumien pohjalta Excelissä voit käynnistää Worksheets: Open, BeforePrint, BeforeSave ja BeforeClose Sheets: Calculate ja SelectionChange valintaikkunat: Click, Initialize ja Terminate ActiveX-ohjausobjektit: Click, GotFocus ja LostFocus makrovirusten apuväline
25
Yksinkertainen VBA -ohjelma
Sub Main() Dim temp As Double temp = InputBox("Fahrenheit-lämpötila?") MsgBox Celsius(temp) & " astetta Celsiusta" End Sub Function Celsius(fDegrees As Double) As Double Celsius = (fDegrees - 32) * 5 / 9 End Function Ohjelma kysyy ikkunassa lämpötilaa fahrenheit-yksiköissä ja kutsuu Celsius-funktiota, joka muuttaa arvon celsius-asteiksi. Lopuksi ohjelma tulostaa ikkunassa tämän celsiukseksi muutetun lämpötilan.
26
Aliohjelmat ja funktiot
kaikki ohjelmakoodi kirjoitetaan komentosarjoihin, jotka ovat joko aliohjelmia (Sub) tai funktioita (Function) komentosarjat kokonaisien ohjelmien loogisia rakennuspalikoita yksi aliohjelma tai funktio suorittaa yhden, mahdollisimman yksinkertaisen tehtävän komentosarjat koostuvat peräkkäisistä käskyistä eli lauseista
27
Ohjelmointikielen perustoiminnot
tiedon siirto ohjelman ja ulkomaailman välillä syöttö ja tulostus näytölle ja kirjoittimelle tiedostojen ja objektien käsittely tiedon tallentaminen ohjelman suorituksessa matemaattiset toiminnot vertailutoiminnot ohjelman suorituksen ohjaaminen valinnaiset toiminnot: if-lause toisto: for- ja while-silmukat ohjelman rakenteen määrittely kielen määrittely – syntaksi ja semantiikka
28
Syöttö ja tulostus syöttö ja tulostus tarkoittaa kommunikointia
käyttäjän ja ohjelman välillä muiden laitteiden ja ohjelmien kanssa syötteellä käyttäjä vaikuttaa ohjelman kulkuun syöte voidaan antaa esimerkiksi näppäimistöltä tai tiedostosta ohjelma antaa tulosteen esimerkiksi näyttöruudulle, tiedostoon tai kirjoittimelle
29
Tietojen syöttö ohjelman aikana
ohjelman ikkunat MsgBox ja InputBox Forms-ikkunat sovellukset Excelin solu valikoista valitut arvot staattiset: samat ohjelman suorituksen ajan dynaamiset: muuttuvat suorituksen mukaan vaikuttamistavat: VBA -koodin käynnistäminen tai tilan ilmaiseminen
30
Käyttöliittymä – User Interface
käyttöliittymän avulla käyttäjä kommunikoi tietokoneen kanssa VBA tarjoaa lukuisia ”visuaalisia” käyttöliittymän tekotapoja ikkunat valikot käyttöliittymä pitää rakentaa siten, ettei ohjelma pysty ”kaatumaan” käyttäjän toimesta käyttöliittymän tulee olla selkeä ja tarkoituksenmukainen
31
Esimerkki: InputBox- ja MsgBox-funktiot
Sub NoudaNimi() Dim omaMuutt As String omaMuutt = InputBox("Anna nimesi:") MsgBox omaMuutt, 0, "Nimesi:" End Sub InputBox:n palauttamaa arvoa (käyttäjän nimi) käytetään proseduurissa, joten sen argumentti on sulkeissa, toisin kuin MsgBox-funktiolla.
32
Yksinkertainen VBA -ohjelma
Sub Main() Dim temp As Double temp = InputBox("Fahrenheit lämpötila?") MsgBox Celsius(temp) & " astetta Celsiusta" End Sub Function Celsius(fDegrees As Double) As Double Celsius = (fDegrees - 32) * 5 / 9 End Function Ohjelma tulostaa kysymyksen ja vastauksen. Valintaikkunassa annetaan syöte.
33
Muistitoiminnot ohjelmassa tieto säilytetään muuttujissa ja muistirakenteissa oikeasti ne ovat tiedon osoitteita tietokoneen muistissa staattiset ja dynaamiset muuttujat toiset ohjelmointikielet tarkkoja muuttujien määritysten suhteen muistitoimintojen tyyppejä muuttuja taulukko tietue (esim. viittaus tietokantaan)
34
Mikä on muuttuja? muuttuja on nimetty pala muistia
muuttujalle voidaan tallentaa ohjelman suorituksen aikana tietoa lukuja tekstiä muuta määriteltyä tietoa muuttujan arvoa voidaan muuttaa: m=m+2 muuttujan arvo voidaan välittää funktiolle ja saada funktiolta paluuarvona suuri osa ohjelman toiminnasta perustuu muuttujille tallennettuun tietoon
35
Muistitoiminnot VBA:ssa
vakio, muuttuja ja taulukko määritellyt tietotyypit luvut: Byte, Integer, Long, Single, Double ja Currency teksti: String totuusarvo: Boolean päivä ja aika: Date objekti: Object muuttuja voi olla myös määrittelemätön (Variant) parempi käyttää määriteltyä (Dim omaMuutt As String) määrittelypakko: koodin alkuun Option Explicit sijoitusoperaattorina =-merkki
36
Yksinkertainen VBA -ohjelma
Sub Main() Dim temp As Double temp = InputBox(”Fahrenheit lämpötila?”) MsgBox(Celsius(temp) & " astetta Celsiusta“) End Sub Function Celsius(fDegrees As Double) As Double Celsius = (fDegrees - 32) * 5 / 9 End Function =-merkillä sijoitetaan temp-muuttujaan eri arvoja.
37
Matemaattiset toiminnot ja VBA
kaikissa korkean tason ohjelmistokielissä on matemaattiset perustoiminnot peruslaskutoimitukset +, -, / ja * kaikki Excelin funktiot ovat käytössä + -
38
Yksinkertainen VBA -ohjelma
Sub Main() Dim temp As Double temp = InputBox(”Fahrenheit lämpötila?”) MsgBox(Celsius(temp) & " astetta Celsiusta") End Sub Function Celsius(fDegrees) Celsius = (fDegrees - 32) * 5 / 9 End Function Esimerkissä käytetään peruslaskutoimituksia.
39
Vertailutoiminnot ja VBA
vertailuoperaattorit < ja <= (”pienempi kuin” ja ”pienempi tai yhtä suuri kuin”) > ja >= (”suurempi kuin” ja ”suurempi tai yhtä suuri kuin”) = ja <> (”yhtä suuri kuin” ja ”erisuuri kuin” ehtojen yhdistely: and,or ja not ohjelmassa voidaan verrataan yleensä vakioita ja funktioiden paluuarvoja sulkeiden avulla voidaan määrätä järjestys vertailuoperaattori palauttaa arvona toden tai epätoden
40
Esimerkkejä: x > 10 x=5 a = true x<>5 x <10 or x >= 1
x=5 and y=3 (a=5 and b=3) or (a=6 and b=2) (a=5 and (b=3 or a=6) and b=2)
41
Ohjelman suorituksen ohjaaminen
ohjelmassa on lauseita lauseet suoritetaan peräjälkeen vasemmalta oikealle ylhäältä alas lauseen sisällä voi olla hyppyjä johonkin toiseen osaan ohjelmassa suoritusjärjestystä voivat ohjata kontrollirakenteet valinnaiset toiminnot toisto ohjelmointi ilman rakenteita hyvin työlästä
42
Valinnaiset toiminnot
? ohjelman haarautumiskohta testataan, onko jokin ehto tosi eli verrataan eri vaihtoehtoja valinta eri suoritusten välillä riippuen vertailusta voi vaatia useamman tai vain tietyn vertailun yhdistelemällä saadaan lisää vaihtoehtoja esimerkki: jos punainen ja pyöreä, niin omena
43
Ehtolause VBA:ssa Testataan onko jokin ehto tosi If…Then If…Then…Else
yksi ehto yhden tai useamman lauseen suorittaminen (päätetään End If) If…Then…Else If…Then…Elseif… Select Case useita eri vaihtoehtoja suoritetaan ehdon perusteella
44
Esimerkki: If…Then…Else -rakenne
Sub VertaaSolu() Dim Luku As Integer Luku = Worksheets("Taul1").Range("A1").Value If Luku < 10 Then Arvo = ”Alle 10” Else Arvo = ”10 tai yli” End If Worksheets("Taul1").Range("A2").Value = Arvo End Sub Jos If-rakenne ei mahdu yhdelle riville, se pitää päättää End If-lauseeseen.
45
Toistot eli silmukat tietyt lauseet toistetaan useita kertoja
määräsilmukat pyörivät tietyn määrän kertoja perustuvat laskurimuuttujaan for-silmukka ehdolliset silmukat päättyvät kun tietty ehto on täynnä while-silmukka esimerkki nostetaan laatikosta hedelmiä koriin, kunnes se on tyhjä
46
Silmukat VBA:ssa Do While/Until...Loop ja While...Wend
suorittaa testauksen silmukan alussa toistaa silmukkaa, kunnes ehdon arvo on True Do Loop…While/Until suorittaa testauksen silmukan lopussa tekee silmukan vähintään kerran For...Next suorittaa lauseet tietyn määrän kertoja laskuri For Each...Next toistaa kaikille alkioille, esimerkiksi objekteille
47
Esimerkki: For...Next -silmukka
Sub Äänimerkit() For x = 1 To 50 Beep ’huomautus esimerkki Next x End Sub Beep-lause saa aikaan tietokoneen kaiuttimesta äänimerkin, jonka taajuus ja kesto ovat konekohtaisia.
48
Esimerkki toistosta: while silmukka
Dim Counter As Integer Counter = 0 ’ Aloitusarvo While Counter < 20 ’ Vertailu Counter = Counter + 1 ’ Laskurin kasvatus Wend ’ Silmukan lopetus ’ kun Counter > 19
49
Esimerkki toistosta: do...loop silmukka
Dim Check As Boolean Dim Counter As Integer Check = True Counter = ’ Aloitusarvot Do ’ Ulompi silmukka Do While Counter < 20 ’ Sisempi silmukka Counter = Counter + 1 ’ Laskurin kasvatus If Counter = 10 Then ’ Jos ehto tosi Check = False ’ Asetetaan Check muuttuja Exit Do ’ Poistu sisemmästä ’ silmukasta End If Loop Loop Until Check = False ’ Poistu ulommasta ’ silmukasta
50
Yhdistetty rakenne ? testataan, mitä on toimitaan eri tavoin
punainen ja pyöreä omena oranssi ja pitkulainen porkkana toimitaan eri tavoin omenat koriin porkkanat pussiin muut roskiin testataan, onko vielä jos on niin seuraava muutoin lopetetaan
51
Kertaus luennon tärkeimmistä asioista
ohjelman avulla tietokone saadaan tekemään haluttuja asioita VBA:lla pystytään tekemään omaa toimintaa helpottavia ominaisuuksia sekä sovelluksia toisille muuttujiin voidaan tallentaa tietoa rakenteet ovat tärkeä osa ohjelmointia valinnat: if-lause toistot: while- ja for-silmukat
52
Kysymyksiä
Samankaltaiset esitykset
© 2024 SlidePlayer.fi Inc.
All rights reserved.