Kapittel 13 Kom i gang med makroar

Like dokumenter
Kom i gang med LibreOffice. Kapittel 14 Tilpass LibreOffice

Kom i gang med LibreOffice. Tillegg A Snøggtastane

Kapittel 12 Lage nettsider

Du kan skrive inn data på same måte som i figuren under :

POLITISKE SAKSDOKUMENT:

Brukarrettleiing E-post lesar

Endringslogg. Fleire måtar å importere løparar på, direkte import frå Excel fil. Endring på seedingtrekning.

Ipad som politisk verktøy. Surnadal kommune

Kom i gang med SKYLAGRING. Frå Serit Fjordane IT

Brukarhandbok for Lingdys 3.8

Legge til brukar. Legge til ein lærar Då det er lite utskifting på lærarar så legg eg til dei manuelt 1. Klikk Kontoredigering Legg til Manuelt

Her skal du lære å programmere micro:biten slik at du kan spele stein, saks, papir med den eller mot den.

Brukarrettleiing. epolitiker

Sognefrukt Medlemsportal - Introduksjon

Vegvisar til vilbli.no

Brukarhandbok for Lingdys 3.8

Lingspeak Lingit AS

GlitreTid versjon 6.1, endringar

Søk regionale miljøtilskudd elektronisk

Telefrukt AS. Medlemsportal - Introduksjon

Eksamen i emnet INF100 Grunnkurs i programmering (Programmering I)

Brukarmanual.

Vegvisar til vilbli.no for rådgivarar

Påmelding til renn i kretsen og utanfor kretsen.

Lotteri- og stiftingstilsynet

Innhald Pålogging... 2 Viktige knappar... 3 Fronter som rom... 3 Leggje inn ei oppgåve i Fronter... 4 Litt om nokre ulike format for tekstbehandling

Eksamen REA3015 Informasjonsteknologi 2. Nynorsk/Bokmål

Store dokument i Word

I denne oppgåva skal me lage eit enkelt spel der pingvinane har rømt frå akvariet i Bergen. Det er din (spelaren) sin jobb å hjelpe dei heim att.

FÅ VERDA HEIM TIL DEG. NÅR DU VIL. TUSSAFIBER KOPLING AV RUTER. FRITZ Box 7360/7390

AD Travel. Brukarmanual for prøvenemnda i Hordaland Fylkeskommune FAGOPPLÆRINGSKONTORET

Overføre/kopiere bilde(filer) frå kamera/mobil til PC

LibreOffice 4.2 Impress Guide. Presentations in LibreOffice

Undersøking. Berre spør! Få svar. I behandling På sjukehuset. Ved utskriving

Denne handboka er basert på OpenOffice.org 3.3 Math Guide. Bidragsytarane til denne boka er:

Rettleiing til rapportering i Altinn, «Partifinansiering 2014», RA-0604 Partilag utan organisasjonsnummer

Behandling av dokumenter i Microsoft Word. En rask innføring

Nettbedrift nye funksjonar frå februar 2016

UNDERSØKING OM MÅLBRUKEN I NYNORSKKOMMUNAR RAPPORT

Administrasjon av medlemslisterog tillitsvalde i 2011

Kollision-handbok. Paolo Capriotti Omsetjing: Karl Ove Hufthammer

Norsk Hammeeting, Letohallen 5. april 2014 Frode Igland LA6VQ

Rettleiar til Partiportalen for Fylkesparti

Molde Domkirke Konfirmasjonspreike

Brukarrettleiing (v. 1.5) i OpenOffice.org v Brukarrettleiing. Kvam herad Tore A. Tellevik, Kvam herad 1 av 36

LibreOffice 4.0 Handbok for Impress. Presentasjonar i LibreOffice

NY PÅ NETT. Enkel tekstbehandling

Kom i gang med Stata for Windows på UiO - hurtigstart for begynnere

Opprydding i mapper og filer

16. april Kurs i matrikkelføring. Adresseoppgåver

Klare mål hyppig rettleiing

Installasjonsrettleiing

Palestinakomiteens medlemssystem Solidus - dei viktigaste funksjonane

Matematikk 1, 4MX15-10E1 A

Rettleiing til rapportering i Altinn, «Partifinansiering 2014», RA-0604 Partilag med organisasjonsnummer

Komme i gang med Skoleportalen

Kopier heile katalogen Metxxxxx inn i Weatherlink-katalogen (eller i ein underkatalog).

TUSSAFIBER KOPLING AV RUTERMODEM RETTLEIING FOR KABEL-TV

Installasjon av SK Admin 6.11

Bruk av OpenOffice.org 3 Writer

Veiledning og oppgaver til OpenOffice Calc. Regneark 1. Grunnskolen i Nittedal

Eksamen REA3015 Informasjonsteknologi 2. Nynorsk/Bokmål

osbergetcms Brukarmanual

Kome i gang med LibreOffice Innføring. Kapittel 1 Innleiing til LibreOffice

Del 1: Overgang fra gammel hjemmeside til ny hjemmeside

Årsrapport frå opplæringskontor i Hordaland om opplæring av lærlingar og lærekandidatar (Lærebedriftene skal bruka eit eige skjema.

INFORMASJONSHEFTE FOR STUDENTAR I LYEFJELL BARNEHAGE

Manual oppdatering av nettsider Sogndal idrettslag

Saksnr Utval Møtedato Utdanningsutvalet I sak Ud-6/12 om anonym retting av prøver gjorde utdanningsutvalet slikt vedtak;

BRUKARUNDERSØKING RENOVASJON 2010

mmm...med SMAK på timeplanen

Rettleiing aktivering av fritekstleverandørar i ehandel

Partifinansiering 2017, RA Rettleiing: Web-skjema. Finne ID og passord. Hente, fylle ut, signere og sende inn skjemaet elektronisk

GeoGebra. brukt på eksamensoppgåver i 10. kl. Sigbjørn Hals

Barnerettane i LOKALSAMFUNNET

Skal skal ikkje. Det startar gjerne med ein vag idé eller ein draum om å bruka interessene dine og kompetansen din på nye måtar på garden din.

EasyPublish Detaljerte brukstilfeller. Versjon 1.0

RETTLEIING FOR BRUK AV «MIN SIDE» I DEN ELEKTRONISKE SKJEMALØYSINGA FOR FRI RETTSHJELP. Oppdatert 19.september 2012 Ove Midtbø FMSF

Dersom summen vert over 400 g må ein trekkje dette frå.

TIL DEG SOM ER BRUKARREPRESENTANT I HELSE MØRE OG ROMSDAL SINE OPPLÆRINGSTILTAK FOR PASIENTAR OG PÅRØRANDE

EasyPublish Kravspesifikasjon. Versjon 1.0

Kom i gang med Zotero

INFORMASJONSHEFTE GRUNNSKULELÆRARUTDANNINGANE HØGSKULEN I VOLDA STUDIEA RET

Norsk etnologisk gransking Oslo, februar 2015 Norsk Folkemuseum Postboks 720 Skøyen 0214 Oslo E-post:

BRUKARUNDERSØKING MOTTAK AV FLYKTNINGAR MOTTAK AV FLYKTNINGAR

Namning av vegar i Fræna Kommune

Partifinansiering 2016, RA Rettleiing: Web-skjema. Finne ID og passord. Hente, fylle ut, signere og sende inn skjemaet elektronisk

Kom i gang med LibreOffice Innføring. Kapittel 8 Kom i gang med Base. Lag ein innebygd flat database

Opprydding og Vedlikehold av Windows

Informasjonssbrev Arkivplan.no

Eksempeloppgåve/ Eksempeloppgave 2009

Nasjonale prøver Matematikk 7. trinn

Kapittel 4 Kome i gang med Writer

Du må ha tilgang til trådlaust nettverk (wifi) eller mobilt datanettverk for å kunne laste ned saker.

mlmtoo much medicine in Norwegian general practice

Rettleiar til Partiportalen for

Legg til rette for å lese politiske saksdokument på ipad

Den nye seksjon for applikasjonar

Matpakkematematikk. Data frå Miljølære til undervisning. Samarbeid mellom Pollen skule og Miljølære. Statistikk i 7.klasse

Transkript:

Kom i gang med LibreOffice Kapittel 13 Kom i gang med makroar Bruke makroopptakaren og litt til

Opphavsrett Opphavsretten til dette dokumentet, 2010 2014, tilhøyrer utgjevarane som er lista opp nedanfor. Du har lov til å distribuere det vidare og/eller gjere endringar under vilkåra sette i GNU General Public License (http://www.gnu.org/licenses/gpl.html), versjon 3 eller nyare, eller Creative Commons Attribution License (http://creativecommons.org/licenses/by/4.0/), versjon 4.0 eller nyare. Alle varemerke i denne innføringa tilhøyrer eigarane deira. Bidragsytarane Andrew Pitonyak Peter Schofield Martin Fox Ron Faile Jr. Tilbakemelding Send, på engelsk, merknader og forslag som har med dette dokumentet å gjere til: documentation@global.libreoffice.org Du kan også bruke e-postlista i18n-no@lister.ping.uio.no, som er på norsk. Tilbakemeldingar som gjeld den norske utgåva kan du også sende til kolbjoern@stuestoel.no. Merk: Alt du sender til ei e-postliste, inkludert e-postadressa di og andre personlege opplysningar som er skrivne i meldinga blir arkivert offentleg tilgjengeleg og kan ikkje slettast. Anerkjenningar Dette kapitlet er basert på Chapter 13 of Getting Started with OpenOffice.org 3.3. Bidragsytarane til denne boka er: Andrew Pitonyak Omsetjing Jean Hollis Weber Kapitlet er omsett til norsk av Kolbjørn Stuestøl. Omsetjing Kapitlet er omsett til norsk av Kolbjørn Stuestøl. Utgjevingsdato og programversjon Utgjeve 26. mai 2014. Basert på LibreOffice 4.2. Norsk versjon utgjeve 24. mai 2015. Documentation for LibreOffice is available at http://www.libreoffice.org/get-help/documentation

Bruke LibreOffice på Mac Nokre av tastekommandoane er ulike på Mac i høve til på Windows/Linux. Tabellen nedanfor viser nokre av dei vanlegaste skilnadane brukte i dette dokumentet. Du finn meir om dette i hjelp for LibreOffice. Windows eller Linux Mac-ekvivalent Effekt Verktøy Innstillingar menyval Høgreklikk LibreOffice Innstillingar Control + klikk og/eller høgreklikk avhengig av maskinoppsettet Tilgang til oppsettinnstillinganens Opnar ein lokalmeny (sprettoppmeny) Ctrl (Control) z (Command, Cmd) Brukt saman med andre tastar F5 Shift+z+F5 Opnar dokumentstrukturen F11 z+t Opnar Stil- og formatvindauget Getting Started with Macros 3

Innhald Opphavsrett...2 Bidragsytarane...2 Tilbakemelding...2 Anerkjenningar...2 Omsetjing...2 Omsetjing...2 Utgjevingsdato og programversjon...2 Bruke LibreOffice på Mac...3 Innleiing...5 Den første makroen din...5 Legge til ein makro...5 Opptak av ein makro...8 Køyre ein makro...9 Vise og redigere makroar...9 REM merknad...10 Definere subrutinar med SUB...10 Definere variablar ved hjelp av Dim...11 Forklaring av makrokoden...11 Lage ein makro...12 Eit meir komplisert eksempel på ein makro...12 Rask køyring av ein makro...15 Feil i makroopptaket...15 Dispatch framework...15 Korleis makroopptakaren brukar dispatch framework...16 Andre val...16 Makroorganisering...16 Kvar er makroane lagra?...18 Importere makroar...18 Laste ned makroar som skal importerast...20 Korleis køyre ein makro...20 Verktøylinjer, menyoppføringar og tastesnarvegar...21 Hendingar...22 Utvidingar...23 Skrive makroar utan opptakaren...24 Finne meir informasjon...24 Inkludert materiale...24 Resursar på nett...25 Trykt materiale eller frå ebook...25 4 Getting Started with Macros

Innleiing Ein makro er ein sekvens med kommandoar eller inntastingar som er lagra for bruk seinare. Eit eksempel på ein enkel makro er ein som «skriv» adressa di. Makro-språket i LibreOffice er svært fleksibelt, slik at du kan automatisera både enkle og kompliserte oppgåver. Makroane er svært nyttige for oppgåver som stendig blir utførte. Makroane i LibreOffice er som oftast skrivne i eit språk kalla LibreOffice Basic, av og til avkorta til Basic. Diverre er læringskurva nokså bratt dersom du skal skrive makroar heilt frå botnen av. Den vanlegaste måten er å bruke den innebygde makro-opptakaren som registrerer tastetrykk og lagrar dei til bruk seinare. Dei fleste oppgåvene i LibreOffice blir utført ved å «sende ein komando» som så blir tolka og brukt. Makroopptakaren verkar ved å registrerer kommandoane som blir sende (sjå «Dispatch framework» på side 15). Den første makroen din Legge til ein makro Det første steget for å lære makroprogrammering er å finne og bruke eksisterande makroar. Denne bolken går ut frå at du har ein makro som du ønskjer å bruke, for eksempel i ein e-post, ei nettside eller ei bok. I dette eksemplet vil makroen i 1 bli brukt. Du må lage eit bibliotek og ein modul som kan innehalde makroen. Sjå «Makroorganisering» på side 16 for meir informasjon. Liste 1: Enkel makro som seier hallo Sub HalloMakro Print "Hallo" End Sub Figur 1: Dialogvindauget for LibreOffice Basic-makroar Den første makroen din 5

Figur 2: Dialogvindauget for LibreOffice Basic-makrohandsamar 6 Getting Started with Macros

Figur 3: Dialogvindauget «Integrated Debugging Environment» (IDE) Bruk desse stega for å lage eit bibliotek for makroen: 1) Bruk Verktøy Makroar Organiser makroar LibreOffice Basic for å opna dialogvindauget for LibreOffice Basic-makroar (figur 1). 2) Trykk på Handsamar for å opna dialogvindauget for Basic makrohandsamaren (figur 2) og vel fana Bibliotek. 3) Vel Mine makroar og dialogvindauge som plassering, dette er standardplasseringa. 4) Trykk på Ny for å opna dialogvindauget for nytt bibliotek. 5) Skriv inn eit namn for biblioteket, for eksempel Testbibliotek, og trykk på OK. 6) Vel fana Modular. 7) Utvid Mine makroar i modullista og vel for eksempel Testbibliotek. Modulnamnet Module1 finst frå før og her kan du legge inn makroen din. Dersom du ønskjer det, kan du klikke på Ny for å lage ein annan modul i biblioteket. 8) Merk Module1 eller den nye modulen du eventuelt laga, og trykk på Rediger for å opna dialogvindauget «Integrated Debugging Environment» (IDE) (figur 3). IDE-en er ein tekstbehandlar innebygd i LibreOffice for å lage og redigere makroar. 9) Førebels er ingen modul laga, så vindauget inneheld berre ein merknad og ein tom makro som ikkje gjer noko som helst. 10) Skriv inn den nye makroen anten framføre Sub Main eller etter End Sub. I liste 2 er den nye makroen lagt inn framføre Sub Main. Den første makroen din 7

11) Trykk på ikonet Kompiler på verktøylinja for å kompilere makroen, dvs. å lage han om til køyrbar makro. 12) Set markøren på subrutinen HalloMakro og klikk på ikonet Køyr BASIC på verktøylinja eller trykk på F5-tasten for å køyre rutinen HalloMakro i modulen. Det kjem opp eit lite vindauge med ordet «Hallo». Dersom markøren ikkje er i ein subrutine eller ein funksjon, vil det bli opna eit dialogvindauge der du kan velje kva makro som skal køyrast. 13) Trykk på OK for å lukke dette vesle vindauget. 14) Når du skal køyre ein makro i ein modul, klikk på ikonet Vel makro på standardverktøylinja eller vel Verktøy Makroar Organiser makroar LibreOffice Basic. 15) Merk ein makro og trykk på Køyr. Liste 2: Module1 med den nye makroen. REM ***** BASIC ***** Sub HalloMakro Print "Hallo" End Sub Sub Main End Sub Opptak av ein makro Dersom du ofte må skrive inn den same informasjonen i eitt eller fleire dokument, kan du kopiere denne informasjonen når han først er skriven inn i dokumentet og lime han inn kvar gong du har bruk for han. Dersom du i mellomtida har kopiert noko anna, vil innhaldet i utklippstavla vere endra slik at du må kopiere informasjonen på nytt før du kan lime han inn. I slike tilfelle kan det vere enklare å lage ein makro som set inn den ønskte informasjonen. Merk I ein del tilfelle kan det vere enklare å legge informasjonen som skal gjentakast i ei automatisk tekstfil. Sjå kapittel 3, Arbeide med tekst i handboka for Writer. 1) Sjå etter at opptak av makroar er slått på ved å gå til Verktøy Innstillingar LibreOffice Avansert på hovudmenyen og merk av for Aktiver opptak av makro. Dette valet blir til vanleg slått av når du installerer LibreOffice på datamaskinen. 2) Gå til Verktøy Makroar Opptak av makro på hovudmenyen for å byrje opptaket av ein makro. Det kjem fram eit lite vindauge som viser at LibreOffice tar opp ein makro. 3) Skriv inn den ønskte informasjonen eller utfør ein serie med operasjonar. Du kan for eksempel skrive namnet ditt. 4) Trykk på Stopp opptak i det vesle vindauget for å stogge opptaket og for å opna dialogvindauget for LibreOffice Basic-makroar (figur 1 på side 5). 5) Opna bibliotekbehaldaren Mine makroar. 6) Finn biblioteket med namnet Standard i Mine makroar. Merk at alle bibliotekbehaldarane har eit bibliotek med namnet Standard. 7) Merk standardbiblioteket og trykk på Ny modul for å lage ein ny modul som skal innehalde makroen. Dette vil opna dialogvindauget for ny modul (4). 8 Getting Started with Macros

Figur 4: Dialogvindauget for ny modul 8) Skriv inn eit fornuftig namn på den nye modulen, på biletet er det brukt Opptak, og trykk på OK for å lage modulen. Namnet på den nye modulen blir vist i LibreOffice Basic-makroar under Standard-bibliotek. 9) Skriv inn eit namn på den nylaga modulen i feltet Makronamn, for eksempel NamnetMitt. 10) Trykk på Lagra for å lagra makroen og lukke vindauget for LibreOffice Basic-makroar. 11) Dersom du har følgd stega ovanfor, skal du nå ha ein modul med namnet Opptak i standardbiblioteket. Inne i denne modulen er makroen NamnetMitt lagra. Merk Når LibreOffice lagar ein ny makro, blir alltid makroen med namnet Main lagt til. Køyre ein makro 1) Gå til Verktøy Makroar Køyr makro på hovudmenyen for å opna dialogvindauget for å velje makro (figur 5). 2) Du kan for eksempel velje den makroen du nettopp laga og trykke på Køyr. 3) Ein annan måte å gjere det på, er å gå til Verktøy Makroar Organiser makroar LibreOffice Basic på hovudmenyen for å opna dialogvindauget for LibreOffice Basic -makroar og velje makroen din og trykke på Køyr. Figur 5: Dialogvindauget for makroveljaren Vise og redigere makroar Slik kan du vise og/eller redigere makroen din: 1) Verktøy Makroar Organiser makroar LibreOffice Basic på hovudmenyen for å opna dialogvindauget for LibreOffice Basic -makroar. 2) Merk den nye makroen din NamnetMitt og trykk på Rediger for å opna makroen i Basic IDE. Makroen er vist i 3. Den første makroen din 9

Makroen NamnetMitt er faktisk ikkje så komplisert som det kan sjå ut til. Du treng ikkje lære så svært mykje før du forstår makroar. Vi byrjar ovanfrå og forklarer dei ulike komponentane etter kvart nedover i utlistinga. Liste 3: Den genererte NamnetMitt -makroen REM ***** BASIC ***** Sub Main End Sub sub NamnetMitt rem ------------------------------------------------------------- rem define variables dim document as object dim dispatcher as object rem ------------------------------------------------------------- rem Få tilgang til dokumentet: document = ThisComponent.CurrentController.Frame dispatcher = createunoservice("com.sun.star.frame.dispatchhelper") rem ------------------------------------------------------------- dim args1(0) as new com.sun.star.beans.propertyvalue args1(0).name = "Text" args1(0).value = "Namnet ditt" dispatcher.executedispatch(document, ".uno:inserttext", "", 0, args1()) end sub REM merknad Alle merknader i makrokodinga byrjar med ordet REM, som står for det engelske ordet remark (som betyr merknad). I staden for REM, kan du bruke enkelt hermeteikn ('). LibreOffice Basic skil ikkje mellom små og store bokstavar, så både REM, Rem og rem kan brukast for å byrje ein merknad. Dersom du brukar symbolske konstantar definert av Application Programming Interface (API), er det sikrare å gå ut frå at namna skil mellom store og små bokstavar. Symbolske konstantar er eit avansert emne som ikkje blir nærare omtalt her og som heller ikkje trengst for å bruke makroopptak i LibreOffice. Definere subrutinar med SUB Dei einskilde makroane blir lagra i såkalla subrutinar som byrjar med nøkkelordet SUB og blir avslutta med END SUB. Koden byrjar alltid med subrutinen Main som er tom og ikkje gjer noko som helst. Den neste subrutinen, NamnetMitt, inneheld den genererte koden for makroen din. Merk LibreOffice lagar alltid ein tom subrutine med namnet Main når programmet lagar ein modul. Det er også nokre avanserte emne som er utføre intensjonane for denne handboka, men det kan vere greitt å kjenne litt til dei. Du kan skrive makroar som kan overføre verdiar til subrutinen. Desse verdiane blir kalla argument. Makroar som blir tatt opp i LibreOffice kan ikkje handtere argument. Ein annan type subrutine er såkalla funksjonar. Dette er subrutinar som returnerer ein verdi. Funksjonane blir definerte med nøkkelordet FUNCTION. Makroar som blir tatt opp i LibreOffice er alltid subrutinar, ikkje funksjonar. 10 Getting Started with Macros

Definere variablar ved hjelp av Dim Du kan skrive ned informasjonar på eit papirstykke slik at du kan bruke dei seinare. Ein variabel kan samanliknast med eit slikt papir i og med at han inneheld informasjon som kan bli endra og kan lesast seinare. Nøkkelordet Dim var opphavleg ei forkorting for det engelske Dimension og blei brukt for å definere storleiken på ein tabell. Dim-utsegna i NamnetMitt svarar til å gjere klar eit papir som seinare kan brukast til å lagra ei melding eller eit notat. I makroen NamnetMitt er variablane document og dispatcher definert å vere av typen object. Andre vanlege variabeltypar er string, integer og date (tekststreng, heiltal og dato). Ein tredje variabel, args1, er ein tabell med dei aktuelle verdiane (args er forkorting for argument). Ein variabel av type array er ein enkelt variabel som kan innehalde fleire verdiar, noko liknande å ha fleire ark i ei enkelt bok. Verdiane i ein tabell (array) blir som oftast nummererte med null som første nummer. Talet i parentes viser det høgste talet på verdiar som kan lagrast i variabelen. I dette eksemplet er det berre plass til éin verdi, numerert som null. Forklaring av makrokoden Nedanfor er ei forklaring på kodane brukte i makroen NamnetMitt. Du treng ikkje forstå alle detaljane, men forklaringa til kvar kodelinje kan gi deg ei kjensle av korleis ein makro er bygd opp. Dei fleste namna brukte i makroen er ein del av makrospråket og kan ikkje omsetjast til norsk. Namna på variablane kan omsetjast, men eg har vald å ikkje gjere det fordi slike program som oftast blir skrivne på engelsk. sub NamnetMitt Definerer starten på makroen dim document as object Definerere ein variabel dim dispatcher as object Definert som ein variabel document = ThisComponent.CurrentController.Frame ThisComponent (DenneKomponenten) viser til det gjeldande dokumentet. CurrentController (gjeldande kontrollelement) er ein eigenskap som refererer til ei teneste som kontrollerer dokumentet. Når du for eksempel skriv inn noko, er det det gjeldande kontrollelementet som held styr på kva du skriv. CurrentController viser deretter endringane i dokumentramma (Frame i uttrykket). Frame er ein kontrolleigenskap som returnerer hovudramma til dokumentet. Variabelen document refererer såleis til dokumentramma, som tar i mot dei utsende kommandoane. dispatcher = createunoservice("com.sun.star.frame.dispatchhelper") Dei fleste oppgåvene i LibreOffice sender ut ein kommando når dei blir avslutta. LibreOffice har innebygd ein avsendingshjelpar som gjer mesteparten av arbeidet med fullføringa av makroar. Metoden CreateUnoService sjekkar namnet på ei sendeteneste (dispatcher) og prøver å lage ei hending av denne tenesta. Når oppgåva er utført, vil variabelen dispatcher innehalde ein referanse til ein DispatchHelper. dim args1(0) as new com.sun.star.beans.propertyvalue Deklarerer ein tabell (array) med eigenskapar. Kvar eigenskap har eit namn og ein verdi og er med andre ord eit namn/verdi-par. Tabellen i dette eksemplet har ein eigenskap ved indeks null. args1(0).name = "Text" args1(0).value = "Namnet ditt" Gir eigenskapen namnet «Text» og verdien «Namnet ditt», som er den teksten som blir skriven ut når makroen køyrer. Den første makroen din 11

dispatcher.executedispatch(document, ".uno:inserttext", "", 0, args1()) Det er her det magiske skjer. Sendingshjelparen sender meldinga til dokumentramma (som er lagra i variabelen med namnet document) med kommandpen.uno:inserttext. Dei to neste eigenskapane er utføre føremålet med dette dokumentet. Det siste argumentet er tabellen med eigenskapsverdiar som skal brukast når kommandoen InsertText (set inn tekst) blir brukt. end sub den siste linja avsluttar makroen. Lage ein makro Når du skal lage ein makro, må du først setje opp to spørsmål: 1) Kan oppgåva løysast med eit enkelt kommandosett? 2) Er det råd å setje opp stega slik at når det siste steget er utført blir markøren sett klar for den neste kommandoen eller for å kunne skrive inn tekst eller data i dokumentet? Eit meir komplisert eksempel på ein makro Ei vanleg oppgåve er å kopiere rader og kolonnar med data frå ei nettside og formatere dei som ein tabell i eit tekstdokument slik: 1) Kopier dataane frå nettsida til utklippstavla. 2) For å unngå uønskte formateringar og skrifttypar, lim teksten inn i eit Writer-dokument som uformatert tekst. 3) Formater teksten på nytt med tabulatorar mellom kolonnane slik at han kan bli omfoma til ein tabell ved å bruke Tabell Gjer om Tekst til tabell på menylinja. DONTKNOW THIN ULTRALIGHT LIGHT SEMILIGHT NORMAL SEMIBOLD BOLD ULTRABOLD BLACK skrifttjukna er ikkje spesifisert/kjend spesifiserer 50 % skrifttjukn. spesifiserer 60% skrifttjukn. spesifiserer 75% skrifttjukn. spesifiserer 90% skrifttjukn. spesifiserer ei normal skrifttjukn. spesifiserer 110% skrifttjukn. spesifiserer 150% skrifttjukn. spesifiserer 175% skrifttjukn. spesifiserer 200% skrifttjukn. Figur 6: Eksempel på kopierte data Med dei to spørsmåla ovanfor i minnet, studer teksten for å sjå om det er råd å ta opp ein makro for å formatere teksten. Figur 6 viser eit eksempel på koperte data frå ei nettside. Den første kolonnen i eksemplet inneheld konstantnamn. Etter kvart namn er det eit mellomrom og ein tabulator. Kvar linje har to avsluttande mellomrom. Den første kolonnen i tabellen skal innehalde eit tal, den andre namnet og den tredje ei forklaring. Omgjeringa er lett å få til for alle radene unntatt for DONTKNOW og NORMAL, som ikkje inneheld talverdiar. Men i rada DONTKNOW kan forklaringa setjast til 0 og i NORMAL kan ho setjast til 100. Desse verdiane kan setjast inn manuelt. 12 Getting Started with Macros

Det er råd å rydde opp i dataane på fleire måtar som alle er lette å få til. Eksempla nedanfor bruker tastetrykk som går ut frå at markøren er ved byrjinga av linja med teksten THIN. 1) Forsikra deg om at makroopptak er slått på ved å sjå etter at det er merkt av for Aktiver opptak av makro i Verktøy Innstillingar LibreOffice Avansert på hovudmenyen. Som standard blir det ikkje merkt av her når LibreOfffice blir installert. 2) Byrja opptaket ved å gå til Verktøy Makroar Opptak av makro på hovudmenyen. 3) Trykk Ctrl + Pil høgre for å flytte markøren til byrjinga på «spesifiserer». 4) Trykk Rettetasten (Backspace) to gonger for å fjerna tabulatoren og mellomrommet. 5) Trykk Tabulator for å legge til ein tabulator utan mellomrommet etter konstantnamnet. 6) Trykk Delete for å slette liten s og trykk deretter Shift + S for å legge til ein stor S. 7) Trykk Ctrl + Pil høgre ein gong for å flytte markøren til byrjinga av talet. 8) Trykk Ctrl + Shift + Pil høgre for å merke og flytte markøren til %-teiknet. 9) Trykk Ctrl + C for å kopiere den merkte teksten til utklippstavla. 10) Trykk End for å flytte markøren til slutten av linja. 11) Trykk Rettetasten (Backspace) to gonger for å fjerne dei to avsluttande mellomromma. 12) Trykk Home for å flytte markøren til byrjinga av linja. 13) Trykk Ctrl + V for å lime inn det merkte talet ved byrjinga av linja. 14) Når du limer inn talet, blir det også limt inn eit ekstra mellomrom, så trykk Rettetasten (Backspace) for å fjerna dette ekstra mellomrommet. 15) Trykk Tabulator for å setje inn ein tabulator mellom talet og namnet. 16) Trykk Home for å flytte markøren til byrjinga av linja. 17) Trykk Pil ned for å flytte markøren til den neste linja. 18) Stopp opptaket av makroen. Sjå «Opptak av ein makro» på side 8 korleis du gjer det. Det tar mykje lenger tid å lese og skrive stega enn det tar å ta opp makroen. Ta det med ro og tenk gjennom stega etter kvart som du utfører dei. Med litt trening blir dette ein vane. Den genererte makrokoden i liste 4 er endra for å ta med stegnummera i merknadane slik at dei høver med stega ovanfor. Liste 4: Kopiere talverdiar til byrjinga av kolonnen. sub CopyNumToCol1 rem ------------------------------------------------------------- rem definer variablane dim document as object dim dispatcher as object rem ------------------------------------------------------------- rem få tilgang til dokumentet document = ThisComponent.CurrentController.Frame dispatcher = createunoservice("com.sun.star.frame.dispatchhelper") rem (3) Trykk Ctrl + Pil høgre for å flytte markøren til byrjinga på «spesifiserer». dispatcher.executedispatch(document, ".uno:gotonextword", "", 0, Array()) rem (4) Trykk Rettetasten to gonger for å fjerna tabulatoren og mellomrommet. dispatcher.executedispatch(document, ".uno:swbackspace", "", 0, Array()) rem ------------------------------------------------------------- dispatcher.executedispatch(document, ".uno:swbackspace", "", 0, Array()) Lage ein makro 13

rem (5) Trykk Tabulator for å legge til ein tabulator utan mellomrommet etter konstantnamnet. dim args4(0) as new com.sun.star.beans.propertyvalue args4(0).name = "Text" args4(0).value = CHR$(9) dispatcher.executedispatch(document, ".uno:inserttext", "", 0, args4()) rem (6) Trykk Delete for å slette liten s dispatcher.executedispatch(document, ".uno:delete", "", 0, Array()) rem (6) og trykk deretter Shift + S for å legge til ein stor S. dim args6(0) as new com.sun.star.beans.propertyvalue args6(0).name = "Text" args6(0).value = "S" dispatcher.executedispatch(document, ".uno:inserttext", "", 0, args6()) rem (7) Trykk Ctrl + Pil høgre ein gong for å flytte markøren til byrjinga av talet. dispatcher.executedispatch(document, ".uno:gotonextword", "", 0, Array()) rem ------------------------------------------------------------- dispatcher.executedispatch(document, ".uno:gotonextword", "", 0, Array()) rem (8) Trykk Ctrl + Shift + Pil høgre for å merke og flytte markøren til %- teiknet. dispatcher.executedispatch(document, ".uno:wordrightsel", "", 0, Array()) rem (9) Trykk Ctrl + C for å kopiere den merkte teksten til utklippstavla. dispatcher.executedispatch(document, ".uno:copy", "", 0, Array()) rem (10) Trykk End for å flytte markøren til slutten av linja. dispatcher.executedispatch(document, ".uno:gotoendofline", "", 0, Array()) rem (11) Trykk Rettetasten to gonger for å fjerne dei to avsluttande mellomromma. dispatcher.executedispatch(document, ".uno:swbackspace", "", 0, Array()) rem ------------------------------------------------------------- dispatcher.executedispatch(document, ".uno:swbackspace", "", 0, Array()) rem (12) Trykk Home for å flytte markøren til byrjinga av linja. dispatcher.executedispatch(document, ".uno:gotostartofline", "", 0, Array()) rem (13) Trykk Ctrl + V for å lime inn det merkte talet ved byrjinga av linja. dispatcher.executedispatch(document, ".uno:paste", "", 0, Array()) rem (14) trykk Rettetasten for å fjerna det ekstra mellomrommet. dispatcher.executedispatch(document, ".uno:swbackspace", "", 0, Array()) rem (15) rykk Tabulator for å setje inn ein tabulator mellom talet og namnet. dim args17(0) as new com.sun.star.beans.propertyvalue args17(0).name = "Text" args17(0).value = CHR$(9) 14 Getting Started with Macros

dispatcher.executedispatch(document, ".uno:inserttext", "", 0, args17()) rem (16) Trykk Home for å flytte markøren til byrjinga av linja. dispatcher.executedispatch(document, ".uno:gotostartofline", "", 0, Array()) rem (17) Trykk Pil ned for å flytte markøren til neste linje. dim args19(1) as new com.sun.star.beans.propertyvalue args19(0).name = "Count" args19(0).value = 1 args19(1).name = "Select" args19(1).value = false dispatcher.executedispatch(document, ".uno:godown", "", 0, args19()) end sub Det blir brukt markørflytting for å utføre alle operasjonane (i motsetning til å bruke søkefunksjonane). Dersom makroen blir køyrd på linja som byrjar med DONTKNOW, vil ordet «er» bli flytt fremst på linja. Dette er ikkje heilt som det skal, og viser at du ikkje bør køyre makroen på linjer som ikkje har det rette formatet. Desse linjene må endrast manuelt. Rask køyring av ein makro Det er tungvindt å køyre makroen frå Verktøy Makroar Køyr makro på hovudmenyen når makroen kan køyrast frå IDE (figur 3 på side 7). 1) Gå til Verktøy Makroar Organiser makroar LibreOffice Basic på hovudmenyen for å opna dialogvindauget Basic Macro (figur 1 side 5). 2) Vel makroen og trykk på Rediger for å opna makroen i IDE-en. 3) Klikk på ikonet Køyr BASIC på makroverktøylinja eller trykk F5-tasten for å køyre makroen. 4) Dersom du ikkje har endra den første makroen, vil dette vere den tomme makroen Main. Endra dette slik at det ser ut slik som vist i liste 5. 5) Nå kan du køyre makroen KopierTalTilKol1 ved å klikke på ikonet Køyr BASIC på verktøylinja i IDE-en. Dette er ein lett og rask måte å køyre makroar på, særleg for tilfeldige makroar som blir brukte berre nokre få gonger og deretter sletta. Liste 5: Endra Main for å kalle opp KopierTalTilKol1. Sub Main KopierTalTilKol1 End Sub Feil i makroopptaket Av og til oppstår det feil ved bruken av makroopptakaren. For å finne ut av feilen, vil det vere til hjelp dersom du forstår korleis LibreOffice arbeider. Som oftast er syndaren å finne i «dispatch framework» og forholdet dette har til makroopptakaren. Dispatch framework «Dispatch framework» er eit styringssystem mellom einskilde komponentar i LibreOffice. «Dispatch» er meldingane som styrer systemet. (Om dette skal omsetjast og i tilfelle til kva, blir nå diskutert i omsetjarforumet). Føremålet med dispatch framework er å tilby ein einsarta tilgang til komponentar (dokuement) for kommandoar som til vanleg blir styrte frå menyoppføringane. Når Fil Lagra som på Feil i makroopptaket 15

hovudmenyen, snarvegen Ctrl + S eller knappen Lagra blir brukt, bli alle køyrde gjennom den same «dispatch-kommandoen». Dispatch framework kan også bli brukt for å sende «kommandoar» tilbake til brukargrensesnittet (UI). Når for eksempel dokumentet blir lagra, blir kommandoen for å lagra kopla frå. Så snart det er gjort endringar i dokumentet, blir kommandoen for å lagra kopla inn igjen. Ein dispatch-kommando er ein tekst som for eksempel.uno:insertobject eller.uno:gotostartofline. Kommandoen blir send til dokumentramma som held han tilbake til det blir funne eit objekt som kan handtere kommandoen. Korleis makroopptakaren brukar dispatch framework Makroopptakaren registrerer dei dispatches som blir laga. Makroopptakaren er eit relativt enkelt verktøy å bruke. Dei same komandoane som blir sende ut blir også lagra til seinare bruk. Problemet er at ikkje alle kommandoane er fullstendige. For eksempel vil det å setje inn eit objekt lage denne koden: dispatcher.executedispatch(document, ".uno:insertobject", "", 0, Array()) Det er ikkje råd å bestemme kva slag objekt som skal lagast eller setjast inn. Dersom objektet blir sett inn frå ei fil, er det uråd å definere kva fil som skal setjast inn. Bruker du Verktøy Innstillingar på hovudmenyen for å opna og gjere endringar i elementa for oppsettet, vil dette ikkje bli registrert i makroen. Den genererte koden blir sett inn som merknad og vil difor ikkje bli køyrd. rem dispatcher.executedispatch(document, ".uno:optionstreedialog", "", 0, Array()) Dersom eit dialogvindauge blir opna, vil makroopptakaren som oftast generere ein kommando for å opna dialogvindauget, men endringar som blir gjort i vindauget blir til vanleg ikkje registrerte. Dette gjeld for eksempel dialogvindauge for å organisere makroar, innsetjing av spesielle teikn og liknande funksjonar. Andre moglege problem du kan møte når du bruker makroopptakaren, er når du skal setje inn formlar, brukardata, filter i Calc, handlingar i databaseskjema og når dokumentet skal eksporterast som kryptert PDF-fil. Du kan aldri vere sikker på kva som verkar utan å prøve det. For eksempel så blir handlingane i søkevindauget tatt opp heilt fin. Andre val Når makroopptakaren ikkje greier å løyse eit spesielt problem, vil den vanlege løysinga vere å skrive kode med LibreOffice-objekt. Diverre er læringskurva for dette nokså bratt. Som oftast er det best å byrje med enkle eksempel og så legge til fleire handlingar etter kvart som du lærer meir. Å studere ferdige makroar kan vere ein godt start. Dersom du tar opp makroar i Calc, og opptakaren kan lage feilfri kode, finst det ei programutviding som omformar Calc-makroar medan dei blir tatt opp. Dette kan vere nyttig for å lære objektmodellen og kan lastast ned frå nettsida http://www.paolo-mantovani.org/downloads/dispatchtoapirecorder/ Makroorganisering I LibreOffice er makroane grupperte i modular som igjen er grupperte i bibliotek som er grupperte i bibliotekbehaldarar. Eit bibliotek blir som oftast brukt som ei stor gruppe for anten heile makrosamlinga eller heile program. Modulane blir som oftast grupperte etter kva funksjonar dei har som brukarsamhandlingar og utrekningar. Dei einskilde makroane er subrutinar eller funksjonar. Figur 7 viser korleis hierarkiet for makrobibliotek kan byggast opp i LibreOffice. 16 Getting Started with Macros

Gå til Verktøy Makroar Organisere makroar LibreOffice Basic på hovudmenyen for å opna dialogvindauget for LibreOffice Basic-makroar (figur 1 på side 5). Alle tilgjengelege bibliotekbehaldarane blir viste i lista Makro frå. Kvart dokument er ein bibliotekbehaldar som kan innehalde fleire bibliotek. Programmet i seg sjølv opererer som to bibliotekbehaldarar, ein for makroar som blir leverte saman med LibreOffice, med namnet LibreOffice-makroar, og ein for private makroar med namnet Mine makroar. Makroane for LibreOffice er lagra saman med køyretidskoden for programmet og kan berre bli redigert dersom du er administrator. Detter er gjort for å verne makroane slik at dei ikkje blir endra. Du kan normalt heller ikkje lagra dine eigne makroar her. Dersom makroane dine ikkje er sett opp berre for eit enkelt dokument, vil makroane truleg bli lagra i behaldaren Mine makroar. Denne behaldaren er lagra i brukarområdet eller heimeområdet ditt. Figur 7: Hierarkiet for makrobibliotek Dersom ein makro er innebygd i eit dokument, vil ein opptatt makro prøve å arbeide på dette dokumentet fordi han først og fremst brukar «ThisComponent» for handlingane. Alle biblioteka har eit bibliotek med namnet Standard. Det er betre å lage sine eigne bibliotek med fornuftige namn enn å bruke standardbiblioteket. Ikkje berre er bibliotek med fornuftige namn enklare å handtere, men dei kan også importerast til andre bibliotekboksar, noko standardbiblioteka ikkje kan. Åtvaring LibreOffice tillet importering av bibliotek til ein bibliotekbehaldarar, men du kan ikkje overskrive biblioteket med namnet Standard. Dersom du lagrar makroane dine i standardbiblioteket, kan du difor ikkje importere dei til andre bibliotekbehaldarar. På same måten som det er god skikk å gi biblioteka fornuftige namn, er det også fornuftig å gi modulane meiningsfylte namn. I utgangspunktet vil LibreOffice bruke namn som Modul1, Modul2 osv. Når du lagar makroane dine må du bestemma deg for kvar dei skal lagrast. Det kan vere fornuftig å lagra makroen i dokumentet dersom dette skal delast med andre. Makroar lagra i biblioteket Mine makroar er tilgjengeleg globalt for alle dokument. Makroorganisering 17

Makroane er ikkje tilgjengelege før biblioteket som inneheld makroane er lasta inn. Standardbiblioteket og biblioteket for malar blir lasta inn automatisk. Eit bibliotek som er lasta inn blir vist litt annleis enn eit som ikkje er det. Dobbeltklikk på biblioteket for å laste inn det og modulane. Kvar er makroane lagra? LibreOffice lagrar brukarspesifikke data i heimemappa for kvar brukar. Kvar denne mappa er, er avhengig av operativsystemet. Du kan sjå kvar desse og andre data for oppsetjinga er lagra ved å gå til Verktøy Innstillingar LibreOffice Stiar på hovudmenyen. I ein datamaskin som for eksempel køyrer på Windows XP, vil dette vere C:\Documents and Settings\<user name>\application Data. Brukarmakroar blir lagra i LibreOffice\4\user\basic. Kvart bibliotek blir lagra i si eiga mappe i hovudmappa. Ved tilfeldig bruk av makroar, er det ikkje så viktig å vite kvar makroane er lagra. Men dersom du veit kvar dei er lagra, kan du lage reservekopiar av dei, dele dei med andre eller å sjå nærare på dei dersom dei inneheld feil. Gå til Verktøy Makroar Organiser dialogvindauge på hovudmenyen for å opna dialogvindauget for LibreOffice Basic-makrohandsamar (figur 2 på side 6). Eller du kan gå til Verktøy Makroar Organiser makroar LibreOffice Basic på hovudmenyen for å opna dialogvindauget LibreOffice Basic-makroar (figur 1 på side 5) og klikke på knappen Handsamar. Importere makroar Dialogvindauget LibreOffice Basic-makrohandsamar blir brukt for å importere makrobibliotek inn i dokumentet og for å lage, slette makroar og å gi nye namn til bibliotek, modular og dialogvindauge. 1) Merk bibliotekboksen som skal brukast og klikk på Importer for å importere makrobibliotek (figur 2 på side 6). 2) Finn fram til mappa som inneheld biblioteket som skal importerast (figur 8). som oftast inneheld mappa to filer, dialog.xlb og script.xlb. Det spelar ingen rolle kva fil du vel, begge blir importerte. Makroar kan lagrast i bibliotek inne i LibreOffice-dokument. Vel eit dokument i staden for ei mappe når du skal importere bibliotek til eit dokument. Merk Du kan ikkje importere biblioteket med namnet Standard. 18 Getting Started with Macros

Figur 8: Finne fram til eit makrobibliotek Tips I ein Linux-maskin blir filer som er spesielle for Libreoffice lagra i home-katalogen til brukaren i ei mappe der namnet byrjar med eit punktum. Filnamn og mappenamn som byrjar med eit punktum kan vere gøymde og blir difor ikkje viste i eit vanleg utvalsvindauge. Dersom du bruker LibreOffice sine dialogvindauge i staden for operativsystemet sine, kan du skrive inn namnet på mappa i namnefeltet. 3) Merk fila og klikk på Opna for å halde fram og gå vidare og opna dialogvindauget for import av bibliotek (figur 9). Figur 9: Vel innstillingar for import av biblioteket 4) Vel desse innstillingane for å importere bibliotek: Makroorganisering 19

a) Dersom det ikkje er merkt av for noko, vil biblioteket bli kopiert til makromappa i brukarområdet ditt. Dersom det finst eit bibliotek med same namnet der frå før, vil biblioteket ikkje bli kopiert. b) Merk av for Byt med eksisterande bibliotek dersom biblioteket du skal importere har det same namnet som eit eksisterande og du vil byte ut dette. c) Merk av for Set inn som referanse dersom du vil bruke biblioteket som ein referanse utan å importere biblioteket inn i dokumentet. Når eit bibliotek blir brukt som referanse blir det skriveverna og ikkje flytt frå staden der det er lagra. 5) Klikk OK for å importere det valde makrobiblioteket. Laste ned makroar som skal importerast Makroar er tilgjengelege for nedlasting. Nokre makroar er innebygde i dokument, nokre er vanlege filer som du må merke og importere og nokre er makrotekst som blir kopiert og limt inn i Basic IDE. Sjå «Legge til ein makro» på side 5 om korleis du legg til makroar i makrobiblioteket og «Vise og redigere makroar» på side 9 om korleis du kan redigere makroar med Basic IDE. Nokre makroar er tilgjengelege for gratis nedlasting på Internett (sjå Tabell 1). Tabell 1. Ein del nettsider med gratis makroar Adresse http://www.pitonyak.org/oo.php http://www.pitonyak.org/database/ http://development.openoffice.org/ http://www.oooforum.org/ http://forum.openoffice.org/ Beskriving Referansemateriell om makroar. Referansemateriell om databasemakroar. Mange lenker til svært mykje. Eit forum med mange eksempel og hjelp. Eit anna forum med mange eksempel og hjelp. Korleis køyre ein makro Sjølv om du kan køyre ein makro frå Verktøy Makroar Køyr makro er dette lite effektivt for makroar du bruker ofte. Du finn meir om dette i «Køyre ein makro» på side 9. Ein meir vanleg måte for å køyre ofte brukte makroar er å tilordna makroen til ein knapp på verktøylinja eller innebygd i eit dokument. Når du vel kva måte du vil bruke, kan det vere greitt å vurdere nokre spørsmål først, som for eksempel: Skal makroen vere tilgjengeleg berre i eitt dokument eller globalt for ale dokument? Er makroen laga for ein spesiell dokumenttype, for eksempel eit Calc-dokument? Kor ofte vil makroen bli brukt? Svara bestemmer kvar makroen skal lagrast og korleis han skal vere tilgjengeleg. For eksempel vil du truleg ikkje legge ein lite brukt makro i ei verktøylinje. Sjå tabell Tabell 2 for å få litt hjelp til vala.. Tabell 2. Måtar å starte ein makro på Type LibreOffice Dokumenttype Dokument Verktøylinje Nei Ja Ja Meny Nei Ja Ja Snarveg Ja Ja Nei 20 Getting Started with Macros

Type LibreOffice Dokumenttype Dokument Hending Ja Nei Ja Verktøylinjer, menyoppføringar og tastesnarvegar For å legge til eit menyelement, ein tastesnarveg eller ein knapp på ei verktøylinje som kallar opp ein makro, bruk dialogvindauget Tilpass (figur 10). Dette vindauget inneheld faner for å setje opp menyar, tastatursnarvegar, verktøylinjer og hendingar. Du opnar dialogvindauget frå Verktøy Tilpass på hovudmenyen eller ved å høgreklikke på ein tom plass på menyen og velje Tilpass verktøylinja i menyen som kjem opp. Det er utanom intensjonane med dette kapitlet å omtale alle vala i dette dialogvindauget. Trykk på Hjelp-knappen for å opna hjelpsidene eller sjå kapittel 14, Tilpassa LibreOffice. Figur 10: Menysider i dialogvindauget for tilpassing Korleis køyre ein makro 21

Hendingar Når noko skjer i LibreOffice betyr dette at det har skjedd ei hending. Dette kan vere å opne eit dokument, trykke ein tast eller flytte på musepeikaren. Du kan setje opp LibreOffice slik at når ei bestemt hending skjer, vil dette kalle opp ein makro. Makroen blir då kalla ein hendingshandterar. Vi skal ikkje dekke alt om hendingdhandterarane i dette kapitlet, men forklare litt slik at du forstår kva som skjer. Åtvaring Ver forsiktig når du set opp ein hendingshandterar. Tenk deg at du skriv ein hendingshandterar som blir kalla opp kvar gong ein bestemt tast blir trykt, men er litt unøyaktig i definisjonane. Eit mogleg resultat er at hendingshandteraren vil bli bruke opp all bruk av tastane. Einaste måten å få slutt på dette er å tvinge LibreOffice til å slutte av. 1) Gå til Verktøy Tilpass på hovudmenyen for å opna dialogvindauget for tilpassing og velje fana Hendingar (figur 11). Hendingane som blir lista ut her er relaterte til heile programmet og spesifiserer dokument. 2) I fetet Lagra i vel du i nedtrekksmenyen at hendinga skal lagrast i anten heile LibreOffice eller eit bestemt dokument. 3) Ein nokså vanleg bruk er å setje opp hendinga Opna dokument ti å kalle opp ein bestemt makro. Denne makroen kan så utføre ulike oppgåver når dokumentet blir opna. Merk den ønskte hendinga og trykk på Makro for å opna dialogvindauget for å velje makro (figur 5 på side 9). 4) Merk den ønskte makroen og trykk på OK for å legge han til hendinga. Hendingsfana vil nå vise at det er lagt ein makro til hendinga. 22 Getting Started with Macros

Figur 11: Fana for hendingar i dialogvindauget for tilpassing mange objekt i eit dokument kan bli sette opp til å kalla opp ein makro når spesielle hendingar blir utført. Det mest vanlege er å legge til ein knapp i eit dokument. Når du høgreklikkar på eit bilete kjem det opp eit dialogvindauge med ei makrofane der du kan tilordna ein makro til ei hending. Utvidingar Ei utviding (Add-In) er ei pakke som kan installerast i LibreOffice for å legge til nye funksjonar. Utvidingane kan skrivast i neste kva programmeringsspråk som helst, og kan vere svært enkle eller svært kompliserte. Utvidingane kan grupperast i ulike typar: Calc-utvidingar, som legg til nye funksjonar i Calc, også nye funksjonar som liknar på dei innebygde. Nye komponentar og funksjonar som normalt inkluderer samarbeid med brukargrensesnittet (UI) som nye menyar og verktøylinjer. Pivottabellar som blir brukte direkte i Calc. Diagramutvidingar med nye diagramtypar. Språklege komponentar som stavekontrollar. Dokumentmalar og bilete. Utvidingar 23

Du kan finne utvidingar mange stader, men for tida er dei fleste samla på nettstaden http://extensions.libreoffice.org/ og ein del dokumentasjon på http://libreplanet.org/wiki/group:openofficeextensions/list. Du finn meir om å laste ned og installere utvidingar i kapittel 14, Tilpasse LibreOffice. Skrive makroar utan opptakaren Eksempla som er brukte i dette kapitlet er laga med makroopptakaren og programstyringa (the dispatcher). Du kan også skrive makroar som har direkte tilgang til objekt som blir omfatta av LibreOffice dersom du er van med å skrive programmeringskode. Sagt på ein annan måte, så kan du skrive ein makro som påverkar eit dokument direkte. Å gripe inn i LibreOffice sine interne objekt er ei avansert oppgåve som er langt utanom føremålet med dette kapitlet. Her er likevel eit enkelt eksempel som viser korleis dette kan gjerast: Liste 6: Legge teksten Hallo til i det gjeldande dokumentet Sub AppendHello Dim odoc Dim stextservice$ Dim ocurs REM ThisComponent viser til det for tida aktive dokumentet. odoc = ThisComponent REM Verifiserer at dette er eit tekstdokument. stextservice = "com.sun.star.text.textdocument" If NOT odoc.supportsservice(stextservice) Then MsgBox "Denne makroen er berre for tekstdokument" Exit Sub End If REM Hent visingsmarkøren frå den gjeldande kontrollen. ocurs = odoc.currentcontroller.getviewcursor() REM Flytt markøren til slutten av dokumentet ocurs.gotoend(false) REM Set inn teksten "Hallo" ved slutten av dokumentet. ocurs.text.insertstring(ocurs, "Hallo", False) End Sub Finne meir informasjon Det finst mange tilgjengelege resursar som kan vere til hjelp for å skrive makroar. Bruk Hjelp LibreOffice Hjelp for å opna LibreOffice sine hjelpesider. I det øvre, venstre hjørnet i hjelpsystemet finn du ei nedtrekksliste som styrer kva som skal visast i hjelp. For å få hjelp om Basic, vel LibreOffice Basic i lista. Inkludert materiale Mange utmerkte makroar er innebygde i LibreOffice. Bruk Verktøy Makroar Organiser makroar LibreOffice Basic for å opna dialogvinduget for makroar. to open the Macro dialog. Utvid biblioteket Tools i bibliotekboksen LibreOffice. Sjå i modulen Debug her finn du mange gode eksempel, inkludert WritedbgInfo(dokument) og printdbginfo(ark). 24 Getting Started with Macros

Resursar på nett Lenkane og referansane nedanfor inneheld informasjon som gjeld makroprogrammering: http://ask.libreoffice.org/ (ein nettstad for spørsmål og svar der frivillige svarar på spørsmåål relaterte til LibreOffice) http://forum.openoffice.org/en/forum/ (Apache OpenOffice community forum; frivillige svarar på spørsmål også om LibreOffice) http://api.openoffice.org/docs/common/ref/com/sun/star/module-ix.html (offisiell IDL-referanse. Her finn du omtale av nesten alle kommandoane) https://wiki.documentfoundation.org/documentation/other_documentation_and_resources (sjå i Programmers section for BASIC Programmers Guide and Developers Guide. Den siste inneheld ei detaljert forklaring) http://www.pitonyak.org/oo.php (makroside for Andrew Pitonyak) http://www.pitonyak.org/andrewmacro.odt (mange eksempel på makroar som verkar) http://www.pitonyak.org/oome_3_0.odt (Andrew Pitonyaks bok om makroar) http://www.pitonyak.org/database/ (mange makroeksempel i Base) Trykt materiale eller frå ebook Det finst for tida ingen nedlastbare bøker spesielt om makroar i LibreOffice. Informasjon i bøkene nedanfor kan for det meste tilpassast LibreOffice. Bøkene er til sals i både trykt form og som ebook frå utgjevarane: Dr. Mark Alexander Bain s Learn OpenOffice.org Spreadsheet Macro Programming. Sjå http://www.packtpub.com/openoffice-ooobasic-calc-automation/book. Roberto Benitez's Database Programming with OpenOffice.org Base & Basic. Sjå http://www.lulu.com/product/paperback/database-programming-with-openofficeorg-basebasic/3568728 Finne meir informasjon 25