Skreddersy din Excel

Skreddersy din Excel

Excelbrukere bruker programmet til forskjellige ting og har behov for forskjellig funksjonalitet. Med makroer innreder du Excel med dine egne skreddersydde verktøy.

Makroer i Microsoft Office-programmene er stykker av programmeringskode som tilfører ny funksjonalitet til dokumentet eller til applikasjonen. Makrospråket, VBA, er svært kraftig, det meste du kan gjøre på en datamaskin, kan en makro også gjøre.

Det er vanlig, også internt i Microsoft, å tenke på makroer som bærer av dokument-egenskaper. Men mange makroer er nyttige å ha i flere situasjoner, så la oss som en enkel introduksjon permanent tilføre Excel verktøyene Store bokstaver, Små bokstaver og Stor forbokstav, beskrevet i artikkelen Store og små bokstaver i Excel.

Hent kaffe, mobilen på lydløs, dette tar 15 minutter:

Åpne Excel. Gå til meny VisVerktøylinjer og velg verktøylinje Visual Basic. Der finner du blant annet knappene Kjør makro, Registrer makro og Visual Basic-redigering. Du finner også en knapp Sikkerhet. Klikk den og sett makrosikkerhet til Medium dersom der står noe annet. Høy er for banker, Lav er for optimister.

Klikk knappen Registrer makro. En boks dukker opp. Gi makronavn UpperCase, tilordne kanskje hurtigtast U og -viktig- velg Global makroarbeidsbok som lagringssted. Klikk OK, og Excel “går i opptak”. Skriv noe tull i en celle, trykk Enter og klikk så knappen Stopp registrering.

Nå har Excel opprettet en fil Global.xls (alternativt Personal.xls) som inneholder denne makroen, og som åpnes hver gang Excel åpnes. Tilsvarende fil i Word er den mer kjente Normal.dot.

Men makroen gjør ikke nå annet enn hva du gjorde da vi spilte den inn, skrive tull i en bestemt celle. Åpne VB-editoren (knapp Visual Basic-redigering eller snarvei ALT + F11 på Windows), finn Global.xls i explorervinduet til venstre, finn Modules under den og Modul1 under den. Dobbeltklikk, og du ser en kodemodul inneholdende noe a la dette:

Sub UpperCase()

‘ UpperCase Makro
‘ Makro registrert 13.09.2006 av Harald Staff

‘ Hurtigtast: CTRL+SKIFT+U

Range(“A1″).Select
ActiveCell.FormulaR1C1 = “Hei IT-proff!”
Range(“A2″).Select
End Sub

Foreta litt avskrift eller klipp og lim fra forannevnte artikkel så koden istedet blir seende slik ut:

Sub UpperCase()
Dim cel As Range
For Each cel In Intersect(Selection, ActiveSheet.UsedRange)
cel.Formula = Ucase$(cel.Formula)
Next
End Sub

De to andre makroene, LowerCase og ProperCase, og enhver ny makro du vil tilføre, kan du nå bare skrive eller lime inn nedenfor denne koden i Module1, så er de alle tilgjengelige via alle Kjør makro-steder i Excel. Og går du tom for plass (ved 65k tegn) setter du inne ny modul ved menyen InsertModule. Du tilordner eventuelt hurtigtaster til disse makroene med knappen Alternativer i Excels Kjør makro-dialog.

To makronavn har en spesiell mening, Auto_open kjører idet dokumentet åpnes, og Auto_close når det lukker. Det er et godt sted å programmere menyer, knapper og andre Exceltilpasninger. Eksempelet nedenfor tilordner våre tre makroer til funksjonsknappene F1, F2 og F3 ved åpning, og tilbakestiller ved lukking:

Sub Auto_open()
Application.OnKey “{F1}”, “UpperCase”
Application.OnKey “{F2}”, “LowerCase”
Application.OnKey “{F3}”, “ProperCase”
End Sub

Sub Auto_close()
Application.OnKey “{F1}”
Application.OnKey “{F2}”
Application.OnKey “{F3}”
End Sub

Overnevnte små koder er såmenn nyttige nok. Men er du Excelbruker på jobben, tenk igjennom hvilke operasjoner som er store, kjedelige, tidkrevende og/eller kompliserte.

Limer du inn data som du må redigere og pynte i timevis? Tar du snapshots av arbeidet jevnlig? Skal noe fra regnearkene inn i nettsider, epost, databaser, backupfiler? Skal enkeltark bearbeides, kopieres ut og sendes via epost til en mengde forskjellige kunder? Med de rette makroene er slike operasjoner bare et tastetrykk unna.