Makro vai ei?

Makro vai ei?

Makrojen käyttö Office-ohjelmien kanssa ei todellakaan ole mikään uusi juttu – ja aina vaan ajankohtainen. Kehityksen kehittyessä makrojenkin hyödyntäminen on osin selkeytynyt, mutta edelleenkin on jonkin verran epäselvyyttä, että mitä niillä makroilla oikein tulisi tehdä.

Makro – mikä se on?

Makro tarkoittaa automatisoituja toimintoja eli suorittamalla makron voi tehdä automaattisesti useita asioita. Office-ohjelmissa on käytettävissä Visual Basic -ohjelmointikieli, jolla Office-makrot on kirjoitettu ja kun Visual Basic on nimenomaan apuna sovelluksen, tyypillisesti esimerkiksi Excelin käyttämisessä, kieli on Visual Basic for Applications ja siitä lyhenne VBA.

Makroilla voi siis automatisoida eli tehostaa ohjelmien käyttöä ja niille löytyy erilaisia järkeviä käyttötilanteita:

  • työlään tehtävän yksinkertaistaminen makrolla, jopa ainutkertaisessa tapauksessa
  • toistuvan toimenpidesarjan toteuttaminen makrolla
  • ”kaikkien” tekemien asioiden helpottaminen ja oikeiden toimintatapojen varmistaminen yhteisesti käytössä olevilla makroilla

Monille makrot ovat tuttuja siitä, että tiedostoja avattaessa voi tulla ilmoitus tiedoston sisältämistä makroista. Jotta makroja voisi käyttää, pitää niiden käyttöönotto tavalla tai toisella hyväksyä. Joka tapauksessa makrot ovat jossain tiedostossa, mutta muitakin vaihtoehtoja on kuin suoraan työtiedostojen mukana kulkevat makrot.

Nauhoita makro ja hoida homma

Yksinkertaisin tapa hyödyntää makroja omiin pikku tarpeisiin on nauhoittaa niitä, mikä on mahdollista Excelissä ja Wordissä. Makron nauhoittaminen tarkoittaa, että

  • aloittaa makron nauhoittamisen
  • tekee jotain ohjelmalla
  • lopettaa makron nauhoittamisen

ja sen jälkeen pystyy toistamaan tekemänsä asiat suorittamalla makron.

Käytännössä makron nauhoittaminen vaatii siis vielä jotain muutakin:

  • Pitää tietää jotain makrojen nauhoittamisesta.
  • Pitää oikeasti osata tehdä ohjelmalla sen, mitä aikoo nauhoittaa.

Todellisuudessa elämässä myös

  • makro pitää testata, mahdollisesti korjata, testata, korjata jne.

Viimeistään tässä vaiheessa on hyvä muistaa, että Excelissä makrojen tekemiä asioita ei voi kumota, kuten normaalisti suurimman osan ohjelmilla tehdyistä asioita voi kumota…

Nauhoita makro Wordiin!

Jos esimerkiksi huomaisi Wordissä usein tekevänsä sitä, että vaihtaa kahden sanan järjestystä keskenään, niin sille voisi nauhoittaa makron. Sanojen järjestystä voi vaihtaa valitsemalla sanan hiirellä ja raahamalla sen eteen tai taaksepäin, mutta Wordissä makroja nauhoitettaessa pitää käyttää näppäinkomentoja, joten pitäisi osata painaa F8, F8, Ctr+X, Ctrl+nuolinäppäin oikealle ja Ctrl+V. F8 ensin laajentaa valintaa ja näin saadaan sana valittua, sitten se leikataan leikepöydälle, siirrytään sana eteenpäin ja liitetään leikattu sana siihen.

Jos makron nauhoittamisen yhteydessä antaa sille näppäinyhdistelmän, esimerkiksi Alt+nuolinäppäin oikealle, niin silloin saa yhdellä näppäinyhdistelmällä tehtyä sen, mihin muuten tarvitsee viisi näppäinkomentoa. Suurin säästö tulee kuitenkin ehkä aivokapasiteetissa, jota tarvitsee toimenpiteen tekemiseen vain kerran, viiden peräkkäisen toimenpiteen tekemisen sijaan.

Jos yllä kuvatun makron nauhoittaa, siitä tulee ihan siisti ja jos sitä katsoo Visual Basic -editorissa, niin se näyttää tältä:

Vain komentojen perässä olevat, vihreinä näkyvät kommentit on kirjoitettu jälkikäteen.

Jos tällainen makro on tallennettuna Wordin Normal.dotm-oletustiedostoon, ovat siellä olevat makrot aina käytettävissä kaikissa tiedostoissa, mitä kyseisellä koneella avataan. Excelissä samaa tarkoitusta varten voidaan nauhoituspaikkaa valittaessa luoda ”henkilökohtainen makrotyökirja” eli Personal.xlsb.

Kun koodiin on tartuttava

Nauhoittamistekniikalla on rajoituksensa:

  • Nauhoittaminen on ”kirjaimellista”. Jos makroa tallennettaessa tehdään tiedostotallennus, tallentuu sekin kirjaimellisesti ja makroa suoritettaessa se tallentaa tiedoston samaan paikkaan ja samalla nimellä. Jos se oli tarkoituskin, voidaan olla tyytyväisiä lopputulokseen, jos ei, pitää tehdä jotain muuta.
  • Kaikkea ei voi nauhoittaa.
  • Nauhoittaminen tuottaa joskus suhteellisen pitkää ja sekavaa ohjelmakoodia – mikä ei tietenkään haittaa, jos makrot toimivat, eikä koodiin tarvitse koskea.

Onneksi Visual Basicin perusteet on suhteellisen helppo oppia. Sitä pystyy melkein kuka tahansa lukemaan ja ymmärtämään englannin kielen taidolla ja pienellä opastuksella.

Kun sitten vielä opettelee vähän editorin käyttöä ja ohjelmoinnin perusteita, niin voi aika helpostikin tehdä kaikenlaista. Lisäksi meillä on aina Google ja kun hakusanoissa ovat mukana esimerkiksi Excel ja VBA, niin kaikenlaisiin tilanteisiin löytyy valmista makrokoodia, muualtakin kuin Microsoftin virallisilta tukisivuilta. Silloin vain pitää olla tarpeeksi kykyä arvioida löytyneitä makroja ja esimerkkejä, että soveltuvatko ne omiin tarkoituksiin ja miten niitä ehkä pitäisi muuttaa. Virustarkistusohjelmathan estävät varsinaisten makrovirusten leviämisen, mutta jos huono makro suoritetaan, ei sen tekemiä tuhoa pystytä välttämättä enää korjaamaan…

Kirjoita ja suorita

Jos esimerkiksi Exceliin on tullut osoitetietoa, jossa paikkakunta on toisinaan kirjoitettu ensimmäinen kirjain isolla ja toisinaan kaikki isolla – tai pahimmassa tapauksessa kaikki pienellä! – niin perinteinen keino on tehdä apusarake, johon SUURI-funktiolla (UPPER) muodostetaan samat tekstit kaikki isoilla kirjoitettuina ja sitten kopioidaan ne arvoina alkuperäisten tekstien päälle.

Jos osaa ja viitsii kirjoittaa neljä riviä koodia, sen jälkeen tuollainen tekstien muuntaminen onnistuu kahdella toimenpiteellä: valitse solut ja suorita makro.

Vaikka asioiden tekeminen Visual Basic -makron avulla onkin helppoa, ei niihin pidä liikaa innostua.

  • Monet asiat on helpointa tehdä ohjelman omilla ominaisuuksilla. Joskus yksinkertaiset asiat, vaikkapa saman arvon syöttäminen useaan valittuun soluun Ctrl+Enter -yhdistelmällä on lopulta kätevämpää ja varsinkin kustannustehokkaampaa kuin makron tekeminen sitä varten kaikkiin eri tilanteisiin. Monimutkaisten toimintojen kohdalla, kuten aineistojen yhteenvetojen kohdalla kannattaa todella miettiä, olisiko siltikin joku Excelin toiminto, esimerkiksi pivot-taulukko järkevämpi ratkaisu.
  • Ohjelmakoodilla on tapana paisua. Kun kerran tuokin asia saatiin hoidettua näin helposti, niin lisättäisiinkö vielä yksi ominaisuus. Ja vielä yksi. Ja jos saadaan sama kesätyöntekijä ensi vuonna, niin voisiko sitten saada siihen vielä nämä muutokset?
  • Makrojen pitää toimia kaikissa mahdollisissa ja mielellään tietysti myös mahdottomissa tilanteissa eikä missään nimessä aiheuttaa mitään peruuttamatonta vahinkoa. Kun tähän lisätään vielä aineistojen tavallisista eroavaisuuksista johtuvat virhetilanteet, ymmärretään, että toimivan, monimutkaisen ohjelmakoodin kirjoittaminen on vaativa tehtävä.

Koko organisaatio voi hyötyä makroista

Suurin hyöty makroistakin saadaan, kun ne jaellaan organisaatiossa kaikkien niitä tarvitsevien käyttöön. Silloin kenekään ei tarvitse osata Visual Basicia, mutta kaikkien on syytä tietää, mitä makrojen suorittaminen tarkoittaa.

Yleisessä käytössä olevia makroja ei myöskään välttämättä tallenneta työtiedostoihin tai henkilökohtaisiin makrotiedostoihin, joita ei nimensä mukaisestikaan ole tarkoitettukaan makrojen jakeluun.

Makrot voivat tulla työasemille tietohallinnon jakamina aputiedostoina tai ne voivat olla mukana esimerkiksi Wordin ja PowerPointin käynnistystiedostoissa. Silloin tulee järkeväksi myös käyttöliittymän muokkaaminen ja päivittäisessä työssä tarvittavat toiminnot, esimerkiksi uuden asiakirjan aloittaminen, raportin muokkaaminen tietokantakyselyllä tai PowerPoint-esityksen kielen vaihtaminen.

Makro vai ei? Kyllä ja ei.

Vastaus on siis yhtä helppo ja yksinkertainen kuin useimmissa muissakin asioissa. Makrot todellakin voivat helpottaa yksinkertaisia ja mahdollistaa monimutkaisia asioita, mutta niiden käyttäminen tai kehittäminen ei ole aina se järkevin ratkaisu. Makro on hyvä apulainen, eikä koskaan toivottavasti johtaja.

Opit makrot! Lue lisää Excel makrot ja VBA I ja Excel makrot ja VBA II -kursseistamme. Katso lista taulukkolaskenta ja raportointi -kursseistamme.

Excel – Miksi ja mihin VBA-makroja?