Esittely latautuu. Ole hyvä ja odota

Esittely latautuu. Ole hyvä ja odota

T Tietotekniikan työkurssi

Samankaltaiset esitykset


Esitys aiheesta: "T Tietotekniikan työkurssi"— Esityksen transkriptio:

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ä


Lataa ppt "T Tietotekniikan työkurssi"

Samankaltaiset esitykset


Iklan oleh Google