1 / 52

T-106.1061 Tietotekniikan työkurssi

T-106.1061 Tietotekniikan työkurssi. Luento 3 VBA 1. Luennon sisältö. tieto ja tietokone ohjelmalla ohjataan tietokonetta ohjelmointikielen perustoiminnot tiedon siirto ohjelman ja ulkomaailman välillä tiedon tallentaminen matemaattiset toiminnot vertailutoiminnot

nirav
Download Presentation

T-106.1061 Tietotekniikan työkurssi

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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änohjelmoimia ohjelmia • tietokoneen voima perustuuasioiden toistoon

  6. Muisti ja tallennusyksikkö RAM CD-ROM ROM kiintolevyt nauhat levykkeet Keskusyksikkö – Central Processing Unit CPU kontrolli- yksikkö prosessori- yksikkö Syöttölaitteet Tulostuslaitteet Syöttö ja tulostus Input/Output I/O näppäimistö hiiri näyttö printteri Tietokoneen rakenne

  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. Tietokoneen toiminta Tieto-sisällönkäsittely Syöte 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 Sovellus Sovelluksen toiminnot ja laajennukset Työkirja Taulukkosivu Graafinenobjekti Ikkuna Nimetty alue • objekteja voidaan käyttää eri ohjelmissa • yhteisiä objekteja on monia • viitataan isä.poika.pojanpoika Solu Grafiikanobjektit Solunarvo 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. 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 Projekti -ikkuna

  16. Ominaisuudet (Properties) • Valitun objektin ominaisuudet • esim. nimi, väri, koko • Aakkostettuna tai kategorioittain • Näkyvillä vain valitun objektinsisä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-muuttujatpuurakenteisena

  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. 0010110 00111101 00111101 11101101 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 tosieli 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 • 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 • toistaa silmukkaa, kunnes ehdon arvo on True • 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 = 0 ’ 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 • 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

More Related