Excel VBA-ohjelmointi

Excel VBA (Visual Basic for Applications) on Exceliin valmiiksi sisäänrakennettu ohjelmointikieli. VBA:lla tuotetaan Exceliin makroja, joilla pystytään suorittamaan ennalta määritetyt toimenpiteet salaman nopeasti.

Mitä hyötyä on Excel VBA:sta

VBA:n avulla pystyt käyttämään Excel-työtiedostoja huomattavasti entistä tehokkaammin, sekä suorittamaan monimutkaisia rutiineja ilman inhimillisen virheen vaaraa. Voit esimerkiksi suorittaa päivittäiset rutiinit yhdellä hiiren klikkauksella, tai tekemään työnteostasi muuten vain näppärämpää. Näin menettelemällä saat suoraa säästöä tehokkuudesta; kun työhön kuluu vähemmän aikaa, niin voit keskittyä tekemään sitä mistä oma yrityksesi saa voittoa.

Esimerkki tehokkuudesta

Esimerkki Excel VBA-ohjelmoinnin tehokkuudesta Sinulla on Excel-taulukko, joka sisältää tiedot 5000 tuotteesta. Jokainen tuote on taulukossa omalla rivillään. Haluat etsiä taulukosta jokaisen alle kymmenen (10) euroa maksavan tuotteen, ja vaihtaa hinnan tilalle tähden (*).

Kun tietomäärä on pieni, onnistuu kyseinen työ helposti myös käsin. Tässä tapauksessa käsiteltäviä kohteita oli 5000. Kokeilin suorittaa tehtävää käsin, jolloin sain käsiteltyä 200 kohdetta tasan 1,5 minuutissa. Tästä voidaan laskea helposti, että vastaavalla nopeudella koko tietomäärän läpikäymisessä olisi kestänyt 37,5 minuuttia. Eli 5000 / 200 = 25 ; 25 * 1,5 min = 37,5 min. Kaiken lisäksi kun työ suoritetaan käsin, on siinä aina inhimillisen virheen vaara. Jos vielä ajatellaan että tieto määrä olisikin ollut kymmenien tuhansien rivien pituinen, niin inhimilliset virheet ja työhön käytetty aika kasvaa huomattavasti. Tällöin on helppo sanoa että makrojen avulla työ olisi hoitunut paljon nopeammin ja ilman erehdyksiä. Mutta kuinka nopeastin on paljon nopeammin?

Työn suorittava VBA-koodi näyttäisi tältä:

Public Sub MerkitseAlle10Maksavat()
	Dim alue As Range
	Dim solu As Range
	
	Set alue = Range("C2:C5001")
	
	For Each solu In alue
		If solu.Value < 10 Then solu.Value = "*"
	Next
End Sub
Alussa määritellään muuttujat, joita tässä tapauksessa ovat "alue" ja "solu". Aluemuuttujan arvoksi asetetaan taulukon alue C2:C5001, jonka souluissa sijaitsee tuotteiden hinnat. Tämän jälkeen käydään jokainen alueella oleva solu läpi For Each -silmukalla, sekä muutetaan arvoksi "*", jos kyseisen solun arvo on alle 10. Kyseisen koodipätkän kirjoittamiseen ja suorittamiseen minulta kului aikaa noin 5 minuuttia, joka on jo tässä tapauksessa huomattavasti vähemmän, kuin 37,5 minuuttia.


Lataa tästä esimerkkitiedosto: Esimerkki1.xlsm

Miksi valita minut

Kun valitset minut työskentelemään yrityksesi Excel-ohjelmien parissa, niin sinulle jää enemmän aikaa keskittyä siihen minkä yrityksesi osaa parhaiten. Toteutan teille halutunlaisen Excel-ohjelman tuntityönä. Kokemukseni Excelistä ja VBA-ohjelmointikielestä takaavat parhaan mahdollisen lopputuloksen.

Kokemusta minulla on Visual Basicista jo 15-vuotiaasta lähtien, ja Excel VBA:n kanssa olen työskennellyt jo muutaman vuoden. Kokemukseni pohjalta perustin vuonna 2014 toiminimen, Makrohuone, minkä nimen alla nykyään toimin. Makrohuone jatkaa omaa mentaliteettiani tuottaa mahdollisimman laadukkaita ja helppokäyttöisiä ohjelmistoja.

Jos sinulla heräsi kysyttävää tai haluat lisätietoa, niin ota rohkeasti yhteyttä puhelimitse tai yhteyslomakkeella. Vaihtohtoisesti voit myös lähettää sähköpostia suoraan osoitteeseen tomi.inkeroinen[at]makrohuone.fi

Ota yhteyttä klikkaamalla tästä