T Tietotekniikan työkurssi

Slides:



Advertisements
Samankaltaiset esitykset
Tuloksellinen Java-ohjelmointi Luku 3 Luokkien käyttäminen
Advertisements

Excel ja makrot Excel koostuu kahdesta eri osasta Alt+F11 VBA
Useimmat esitetyt asiat pätevät myös muihin Office ohjelmiin.
T Tietotekniikan työkurssi
Pääkaupunkiseudun 8. luokkien palvelukyky Espoo, Tapiolan koulu Joulukuu 2013.
Hampuri, Saksa Löytää suunta, joka mahdollistaa Lions Clubs Internationalin saavuttavan sen täyden potentiaalin kansainvälisenä.
Olio-ohjelmoinnin perusteet luento 3: Muuttujista ja funktioista Sami Jantunen LTY/Tietotekniikan osasto.
© Jukka Harju, Viittausmuuttujat. © Jukka Harju, Viittaukset •Viittausmuuttuja sisältää tiedon siitä missä muistipaikassa olio.
T Tietotekniikan työkurssi
JavaScript (c) Irja & Reino Aarinen, 2007
VBA –ohjelmoinnin perusteet
Luku 5 – Tietojen hakeminen sovelluksiin
vuorovaikutteiset www-sivut 1.Asiakas-palvelinmalli kuvana Request Response request.asp response.asp.
2.8.3 Abstraktit tietotyypit
Rakenteinen ohjelmointi
Power Point – esitysgrafiikkaohjelma lyhyesti
Ohjelmointitaito (ict1td002, 12 op) Syksy 2008
Valitse sanomapalkissa Ota muokkaus käyttöön,
Näytölle tulostaminen. 7.2 Sisällys System.out.println - ja System.out.print -operaatiot. Tulostus erikoismerkeillä. Edistyneempää tulosteiden.
Ohjelma on kokoelma toimintaohjeita annetun tehtävän ______________________. Ohjelmassa on peräkkäisten toimintojen lisäksi yleensä valintaa ja _____________.
C-ohjelmointi, kevät 2006 Taulukot Binääritiedostot Luento
Tekstiasiakirjan kirjoittaminen
Tekstin muotoilu Wordilla:
OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT. LUOKKA JAVA ohjelma koostuu luokista LUOKKA sisältää metodeja molemmat sisältävät attribuutteja eli muuttujia.
@ Leena Lahtinen OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT.
1 Senioreiden säästäminen ja maksutavat 2014 SENIOREIDEN SÄÄSTÄMINEN JA MAKSUTAVAT
VB:n tietokantakäsittely
1 Tulostaminen ja tiedostot. 2 Tulostaminen paperille n Tulostus voidaan tehdä esimerkiksi: –Crystal Reports -raporttigeneraattorilla –Printer-objektin.
5.3.3 Koodin generointi Koodin generointi tarkoittaa objektikoodin eli konekielisen ohjelman tuottamista. Generointi jakautuu kolmeen osatehtävään: 1.Muistin.
Elinkeinopoliittinen mittaristo 2014
Ohjelmoinnin tekniikkaa Sisällys for -lause lyhemmin. Vaihtoehtoisia merkintöjä aritmeettisille lauseille. Useiden muuttujien esittely.
13. Hyvä ohjelmointitapa (osa 1)
© Jukka Harju, Jukka Juslin
Jumala tuntee minut; Jeesus – Sana tuli ihmiseksi
Johdatus ohjelmointiin Ohjelmistosuunnittelu Jaana Holvikivi.
ict1td002 - Copyright Raine Kauppinen 1 Alkuarvot ja tyyppimuunnokset (1/5)  Aiemmin olemme jo antaneet muuttujille alkuarvoja, esimerkiksi: int.
Aritmeettinen jono jono, jossa seuraava termi saadaan edellisestä lisäämällä sama luku a, a + d, a+2d, a +3d,… Aritmeettisessa jonossa kahden peräkkäisen.
Visual Basic -ohjelmointi
String-vertailusta ja Scannerin käytöstä (1/2)
Metodit – Arvotyyppi Ellei metodi palauta arvoa, sen arvotyyppi on void Tällöin ”return;”-lauseke ei ole metodissa pakollinen, vaikka sen käyttö on sallittua.
Tietotyypit Tietotyyppi määrittää muuttujan sisältämän datan luonnetta, muistista tarvittavaa tilaa ja sitä, millaisia operaatioita siihen voidaan kohdistaa.
Muuttujat ja vakiottMyn1 Muuttujat ja vakiot PHP-kielen syntaksi on lainattu suurimmaksi osaksi C- kielestä. PHP on erityisesti HTML-dokumenttien sisään.
4. Attribuutit 4.1. Sisällys Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2.
Toimisto-ohjelmat TVT osana Sädettä. Tehdään kyselylomake joko tekstinkäsittely- tai taulukkolaskentaohjelmalla. Pilvipalveluita käytettäessä saadaan.
@ Leena Lahtinen OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT.
Hyvä ohjelmointitapa (osa 2) Yleistä Lisää hyviä ohjelmointikäytäntöjä: − Jaa pitkä koodi osiin. − Käytä attribuutteja säästeliäästi.
Ohjelmointitaito (ict1td002, 12 op) Kevät 2008 Raine Kauppinen
1 Ohjelmointikielten varhaishistoria Esa-Matti Miettinen
Suomen Lääkäriliitto | Finnish Medical AssociationLääkärit Suomessa | Physicians in Finland Tilastotietoja lääkäreistä ja terveydenhuollosta 2014 Statistics.
Rinnakkaisuus Järjestelmässä, jossa voi olla useita prosesseja rinnakkain suorituksessa voi tulla tilanteita, joissa prosessien suoritusta täytyy kontrolloida.
Visual Basic -ohjelmointi
Antti-Jussi Lakanen Nuorten peliohjelmointi 2009 / Jyväskylän yliopisto.
Visual Basic -ohjelmointi
Visual Basic -ohjelmointi
1 © Jukka Juslin Luokat, attribuutit ja metodit Yleistietoa: seuraavalla koulutusviikolla tarkempi käsittely.
Ohjelmointi 1. toinen luento1 Taulukot n Kiinteät taulukot: alkioiden määrä tiedetään Dim intCount(12) As Integer 0 indeksit saavat arvoja 0-12 (Option.
15. Ohjelmoinnin tekniikkaa
1..toistolauseet While Wend For Each In [Exit For] Next.
Ohjausrakenteet Määräävät ohjelmakoodin suoritusjärjestyksen Ehtolause if – else on muotoa if (lauseke) lause1 else lause2 Jos lauseke on tosi, niin suoritetaan.
Ohjelmassa tänään Ohjelmointimallit Pseudokieli Modulaarisuus.
String-vertailusta ja Scannerin käytöstä (1/2)
7. Hyvä ohjelmointitapa..
3. Luokat, oliot ja metodit Java-kielessä (Lausekielinen ohjelmointi I ja II –kursseilla opitun kertausta.)
7. Näytölle tulostaminen
Toisto Toistolausekkeet for, while(ehto){…} ja do {…} while(ehto)
14. Hyvä ohjelmointitapa.
11. Javan valintarakenteet
7. Näytölle tulostaminen
13. Loogiset operaatiot.
1. Olio-ohjelmointi.
Esityksen transkriptio:

T-106.1061 Tietotekniikan työkurssi Luento 4 VBA 2

Luennon sisältö ohjelmointikielen perustoiminnot tiedon siirto ohjelman ja ulkomaailman välillä tiedon tallentaminen matemaattiset toiminnot vertailutoiminnot ohjelman suorituksen ohjaaminen ohjelman rakenteen määrittely kielen määrittely hyvän koodin kirjoittaminen VBA sovelluksissa makrojen nauhottaminen

Luennon tavoitteet kerrataan edellisellä luennolla opittuja asioita ohjelmoinnin perustoiminnot käydään loppuun ymmärrät, mitä pitää ottaa huomioon hyvää koodia kirjoitettaessa opit esimerkkien avulla VBA:n käyttöä sovelluksissa: Excel, PowerPoint ja Word tiedät, mihin ja miten makrojen nauhoittamista voi käyttää

Muuttujat ohjelmassa tieto tallennetaan muuttujiin, jotka ovat tietokoneen muistista varattuja paikkoja muuttujalla on tyyppi, joka ilmaisee siihen tallennettavan tiedon laadun muuttujan määrittely Dim nimi As String Dim luku As Integer määrittelypakko: Option Explicit staattiset ja dynaamiset muuttujat Private / Public vakiot (Const)

Muuttujien perustyypit Luvut Byte kokonaisluku väliltä 0...255 Integer kokonaisluku väliltä -32 768...32 767 Long kokonaisluku väliltä -2 147 483 648...2 147 483 647 Single desimaaliluku väliltä n. -3,4x1038...3,4x1038 Double desimaaliluku väliltä n. -1,7x10308...1,7x10308 String merkkijono Boolean totuusarvo, true tai false Date päivä muuttuja voi olla myös määrittelemätön (Variant)

Muuttujien käyttö sijoitusoperaattorina =-merkki Muuttujan tyyppi: ctrl-i muuttujan arvoa voidaan muuttaa: m=m+2 muuttujan arvo voidaan välittää funktiolle ja saada funktiolta paluuarvona muunnokset eri muuttujatyyppien välillä merkkijonon muuttaminen lukuarvoksi Val-funktiolla funktio palauttaa nollan, jos muunnos epäonnistuu eli merkkijono ei sisällä lukua

Muuttujien käyttö Public Sub Swap (X As Long, Y As_ Long) Dim Tmp As Long Tmp = X X = Y Y = Tmp End Sub

Esimerkki Val-funktion käytöstä Dim teksti As String Dim luku As Integer teksti = ”12345” luku = Val(teksti) ’ Luku sisältää nyt arvon 12345 teksti = ”ei luku” luku = Val(teksti) ’ Luku sisältää nyt arvon 0, ’ koska muunnettava ’ merkkijono ei ollut luku

Taulukot Taulukon luominen Taulukon alkioon viittaaminen ’Luodaan 10-alkioinen taulukko Dim taulukko(1 To 10) As String ’ Luodaan 64-alkioinen taulukko Dim shakkilauta(1 To 8, 1 To 8) As Integer Taulukon alkioon viittaaminen taulukko(4) = ”Maija” shakkilauta(4,5) = 0

Ohjelman rakenne aliohjelma on itsenäinen kokonaisuus, joka jollain lähtöarvoilla suorittaa tietyn tehtävän ja mahdollisesti palauttaa tietyn arvon aliohjelmaa voidaan kutsua eri paikoista paikallinen yleinen aliohjelmilla ohjelmiin saadaan selkeyttä ohjelma saadaan jaettua pienempiin ymmärrettäviin osiin

VBA:n rakenteet Function-rakenne Sub-rakenne voidaan antaa lähtöarvoja eli argumentteja argumentit voivat olla pakollisia tai vapaaehtoisia (Optional) palauttaa aina arvon, paluuarvon voidaan käyttää suoraan Excelissä Sub-rakenne voidaan antaa lähtöarvoja samoin kuin edellä ei palauta arvoa kutsutaan makroksi, jos ei ole lähtöarvoja rakenteen näkyminen: Private ja Public rakenteen käynnistäminen: Visual Basicista, automaattisesti ja sovelluksesta

Aliohjelmien käyttö ohjelmaan saadaan rakennetta selkeyttä mahdollista hahmottaa helpommin samaa ”palikkaa” voidaan käyttää useaan kertaan eri puolilta ohjelmaa aliohjelmien käyttöä ei saa korvata hypyillä

Argumenttien käytön periaatteet Sub Ohjelma Function LainaKustannus lainamäärä1 lainamäärä korko1 korko lainaaika lainaaika kustannus1 LainaKustannus Function AnnaAika lainamäärä1 lainamäärä korko2 korko maxaika AnnaAika lainamäärä1 korko2 Sub Muunna lainamäärä korko lainamäärä korko kustannus1

Argumenttien välitys ja paluuarvot aliohjelmat toimivat itsenäisesti ei globaaleja muuttujia annetaan kaikki aliohjelman tarvitsema tieto argumentteina välitetyn argumentin arvo voi muuttua tai ei ByVal: arvo ei muutu ByRef: arvo muuttuu Optional – pakollinen vai valinnainen tietotyypin ilmoittaminen As

ByVal ja By Ref a = 12 Sub Foobar(ByVal a) a =13 End Sub Muisti Pääohjelma a 12 a = 12 Sub Foobar(ByVal a) a =13 End Sub Sub Foobar(ByRef a) a = 13 Foobar a 13 Pääohjelma a 13 Foobar a

Kielen määrittely – syntaksi jotta tietokone ymmärtää ohjelmakoodia, täytyy olla olemassa jokin sovittu “kielioppi” syntaksi ilmoittaa mm miten käskyt syötetään missä järjestyksessä asiat ovat mitkä sanat ovat varattuja

VBA kielen määrittely – syntaksi Sub Proseduuri() … End Sub Function Funktio() … Funktio=… End Function sovittu tietyt käskyt (varatut sanat) sovittu tietty järjestys sovittu tietyt operaatiot esimerkiksi Application.Workbook

ensimmäisen merkin on oltava kirjain Säännöt proseduurien, argumenttien, muuttujien ja vakioiden nimeämisestä ensimmäisen merkin on oltava kirjain nimessä ei saa olla välilyöntejä, pisteitä (.), huutomerkkejä (!) tai merkkejä @, &, $, # varattuja käskysanoja ei saa käyttää (esim. If, Goto ja True) nimiä, joilla on sama määrittelytaso, ei voi käyttää useita kertoja (esimerkiksi yhdessä proseduurissa kaksi kertaa sama muuttujanimi)

? VBA:n ohjeet F1-näppäimellä ongelmakohdan päällä kursivoitu korvataan tarvittavalla objektilla tai vastaavalla esim. objekti.Activate lihavoidut ja kursivoidut sanat ovat funktion argumentteja, hakasulkeissa ne ovat valinnaisia esim. MsgBox(prompt[;buttons][;title][;helpfile;context]) aaltosulkeet ja suora viiva ilmaisevat pakollisen valinnan kahden kohdan välillä esim. Option Compare {Binary | Text}

Rivin katkaisu _ merkki. Esim: Sub Esim() MsgBox _ ”Hello World” End Sub

Mistä funktioita löytää / miten kirjoitan koodia? View - Object Browser tai F2 Classes Tools – Options Auto Quick Info Helppi Koodia on helppo aloittaa tekemään napin tai formin avulla Muutoin uusia aliohjelmia voi yksinkertaisesti kirjoittaa koodi-ikkunaan tai Insert-valikosta

Esimerkkifunktioita Count – alueen solujen laskeminen Application.WorksheetFunction.Count(alue) IsEmpty – onko solu tyhjä If IsEmpty(ActiveSheet.Range(”A1”).Value) then ... End If CStr – datan muunto merkkijonoksi Esim: postinumeroiden konvergointi tekstiksi MsgBox CStr(Now) MsgBox CStr(Chr(169)) (→© )

Tekstijonon käsittely Mid-funktio MsgBox Mid(”testijono”, 3, 4) ’stij MsgBox Mid(”testijono”, 6) ’jono MsgBox Mid(”testijono”, 10) ’tyhjä Left-funktio – postinumeron erottaminen tekstistä MsgBox Left(”testijono”, 1) ’t MsgBox Left(”testijono”, 5) ’testi Right-funktio MsgBox Right(”testijono”, 4) ’jono

Lisää merkkijonofunktioita Haku jonosta: InStr MsgBox InStr(1,”Esimerkki”,”kk”) ’7 MsgBox InStr(8,”Esimerkki”,”kk”) ’0 Välilyöntien poisto merkkijonosta: LTrim, RTrim, Trim MsgBox Trim(” tes ti ”) Välilyöntien lisääminen merkkijonoon: Space MsgBox Space(12-Len(”testi”)) ’tulostaa 12 merkin pituisen testi-sanan

MsgBox valintaikkunana MsgBoxiin saa ehdollisia valintoja (Kyllä / Ei / Cancel) Lyhyt esimerkki: Private Sub ValintaNappi_Click() Dim Vastaus As Long Vastaus = MsgBox("Oletko aivan varma?",_ vbYesNo, "Vahvista") If Vastaus = vbYes Then ... Else ... End If End Sub

Eri komentojen syntakseja If condition Then [statements] [Else [elsestatements]] End If [Public | Private] [Static] Function name_ [(arglist)] [As type] [name = expression] End Function

VBA:n objektit – toiminnot, metodit, menetelmät... objekteja: Excel, työkirja, solu ominaisuudet ja niiden muuttaminen Worksheets("Taul1").Range("A1").Value = 3,14159 Application.Workbooks("esim.xls").Worksheets("Taul1").Name = "taulukko1" objekteille suoritettavat toiminnot ja niihin liittyvät metodit Worksheets("Taul1").Activate Workbooks.Open("esim.xls") erotetaan pisteellä objektista tai toisesta ominaisuudesta voi palauttaa arvon MsgBox ”Avoinna olevia työkirjoja on ” & _ Application.Worksheets.Count

VBA:n objektit – toiminnot, metodit, menetelmät... (2) lyhytviittaukset objekteja, joiden kohde osoittaa aina aktiiviseen objektiin ActiveSheet ActiveCell Esim. ActiveCell.Value = 5 oikean objektin löytäminen Help-valikko makronauhuri Object Browser-ikkuna

Esimerkki: alue argumenttina Public Function Karvo(alue as Range) As Double Dim b As Range Dim a As Double a=0 For Each b In alue a=a+b.value next b Karvo = a / alue.count End Function

Esimerkki: solun arvon muuttaminen Worksheets(”Taulu”).Range(”A1”).Value = 3 Range(”B1”).Formula = ”=5-10*rand” Range(”C1:E3”).Value = 6

Esimerkki: Excelin funktion käyttäminen Cells(1, 1).Value= WorksheetFunction.Round(2.34534, 2)

(Esimerkki: Workbookin lisäys) Sub CreateAndSave() Set newBook = Workbooks.Add Do fName = Application.GetSaveAsFilename Loop Until fName <> False newBook.SaveAs Filename =fname End Sub

Esimerkki: objektimuuttujan käyttö objektimuuttujat asetetaan osoittamaan olemassa oleviin objekteihin Set-käskyllä Public Sub Esim() Dim a,b As Excel.Range Set a = Worksheets(”Taul1”).Range(”A1”) Set b = Worksheets(”Taul1”).Range(”A1”) a.Value = 6 MsgBox b ’ Ikkunassa näytetään arvo 6 b.Value = 3 ’ Muutetaan samalla a:n arvoa MsgBox a ’ Ikkunassa näytetään arvo 3 End Sub

Makronauhuri makronauhuri on kätevä apuväline, kun etsit Visual Basic -menetelmiä ja ominaisuuksia, joita haluat käyttää kaikkea et voi nauhoittaa ehdolliset haarakohdat silmukkarakenteet lasketut valinnat ja viittaukset jotkin sisäiset funktiot ja valintaikkunat omat valintaikkunat (älä käytä hiirtä nauhoittaessasi) voit parantaa makroja muokkaamalla moduliin nauhoitettua koodia

Makronauhurin käyttö avaa Developer-valikosta Code - Record Macro tee toiminnot Excelissä kuten muutenkin pysäytä nauhoitus Stop Recording-painikkeella makro on käytössäsi Module-ikkunassa Makron ajaminen: Developer – Macros - < makron nimi>

Hyvän koodin kirjoittaminen ohjelman rakenne on hyvä aliohjelmien käyttö (sub ja function) ohjausrakenteiden käyttö (valinnat ja toistot) argumenttien välitys on oikein ei globaaleja muuttujia paluuarvoja käytetään hyväksi käytetty järkevästi kielen mahdollisuuksia koodi on järjestelty hyvin rivien käyttö sisennys kommentointi ja havainnolliset nimet

Kommentit selkokieliset huomautukset ohjelmakoodissa kommentointi on tärkeää – lisää selkeyttä myöhemmin helpompi ”muistaa” omaa koodia muiden helpompi ymmärtää koodia helpottaa ohjelman ylläpitoa heittomerkin (’) tai (Rem)-sanan jälkeen kielen tulkki ohittaa kommentit kommentteja monimutkaisiin kohtiin – ei liikaa Visual Basic on melko selkeää kieltä, joten se ei vaadi kovin paljon kommentteja

Ohjelmoinnin virheiden välttäminen ohjelmoinnissa tulee aina virheitä syntaksi-virheet kielen määrittelyssä on virhe ohjelma ei pysty kääntämään koodia suorituksen aikaiset virheet loogiset virheet kielen määrittely on oikein ja koodi kääntyy ohjelma ei kuitenkaan toimi halutulla tavalla loogiset virheet on vaikeampia löytää virheenkorjaus, debugging – työkalut

VBA koodin optimointi tarpeettomien nauhoitettujen osien poisto variant-muuttujan käytön minimointi Toistorakenteiden järkevä käyttö OLE-viittausten välttäminen With-lauseella For Each…Next -silmukan käyttäminen muut indeksilukujen selkeä käyttäminen objektin aktivoinnin ja valitsemisen minimointi määriteltyjen objektityyppien käyttö vakioiden käyttäminen

Esim. With-lauseen käyttämisestä Application.Workbooks(”esim.xls”)._ Worksheets.Cells(1,1) .Value = 0 .Font.Name = ”Arial” .Font.ColorIndex = 3 End With EI SIIS NÄIN Application.Workbooks(”esim1.xls”).Worksheets._ Cells(1,1).Value = 0 Cells(1,1).Font.Name = ”Arial”

VBA:n käyttö Office-sovelluksissa objektimallilla viittaaminen Excelin toiminnot ja viittaaminen taulukkosivut kuvaajat solujen arvot PowerPoint Word Visual Basic on tehokas tapa saada lisää ominaisuuksia sovelluksiin

Mitä muuta VBA:lla voi tehdä? Visual Basic for Applications muissa sovelluksissa Word PowerPoint Access muodot ja piirrokset tekstintäyttöobjektit muut hauskat automaatiot

VBA:n vinkkejä ESC-näppäin tai CTRL+BREAK pysäyttää loputtoman silmukan voit jatkaa lausetta seuraavalle riville: kirjoita rivin loppuun välilyönti ja alaviiva (_) lauseiden muodostamisen työkalut automaattinen syntaksin tarkistus vaadi muuttujan määrittely (Option Explicit) automaattinen lauseen muodostin automaattinen pikavihje automaattinen arvovihje sisennä automaattisesti sarkainleveys

Mihin VBA:ta voidaan käyttää Excelissä? funktiot Exceliin usein käytettyjen toimintasarjojen toisto muotoilut ulkopuolisen datan tuominen Exceliin sovellusten tekeminen muille käyttäjille personoidut taulukot käyttäjän antamien tietojen syöttö voidaan yhdistää muihin Excelin ominaisuuksiin

Mitä tästä kaikesta oli hyötyä? opittuasi kerran ohjelmoimaan on muiden ohjelmointikielten oppiminen ”helppoa” tiedät jotain siitä, mitä ohjelmointi on peräkkäisiä valintoja ja toistoja tiettyjä rakenteita sovittuja kielen määrittelyjä virheiden korjaamista  ymmärrät ehkä paremmin Office-ohjelmia, jotka on suurelta osin tehty Visual Basicilla ohjelmoimaan oppii vain ohjelmoimalla…

Kertaus luennon tärkeimmistä asioista arvot aliohjelmien välillä välitetään argumentteina kielen syntaksi on tärkeää osata, jotta kieltä pystyy käyttämään Visual Basicia voi käyttää tehostamaan sovellusten toimintaa makronauhuria käytettäessä pitää muuttaa koodia käsin

Kysymyksiä