Libreoffice calc makro for å gi nytt navn til en gruppe filer. Skrive VBA-makroer i LibreOffice. Opprette en makro i LibreOffice


Grensesnitt

men fundamentalt forskjellig fra Microsoft Office Excel 2010.

I MS Excel 2010 er det en såkalt "båndmeny" - en revolusjonerende løsning fra Microsoft, implementert i MS Office 2007, som mange ikke likte, og til og med spesialverktøy ble utviklet som returnerer utseendet til MS Office 2010 til MS Office 2003.

La oss se nærmere på de viktigste menyelementene til regnearkredaktørene ovenfor.

I regnearkredigerere (MS Excel, OOo Calc, LiO Calc, IBM Lotus Symphony Spreadsheets, etc.), er det viktigste elementet en "celle", og alle operasjoner som utføres i regnearkredigerere brukes spesifikt på celler eller en gruppe celler (rader) , kolonner osv.). Derfor vil vi først og fremst vurdere menyelementene knyttet til celleformatering.

I LiO Office, som i MS Office 2003, formateres celler gjennom "Format / Cells"-menyelementet eller med "Ctrl + 1" hurtigtasten.

I MS Excel 2010 utføres celleformatering på fanen "Hjem".

Andre MS Excel 2010-menyelementer (Sett inn, Sideoppsett, Formler, Data, Gjennomgang, etc.) i LiO Calc er plassert i menyelementer med lignende navn.

Det nest viktigste elementet i regneark er "Funksjoner", eller de er "formler".

I MS Excel og LiO Calc er navnene (forkortelsene) på alle formler like, så overgangen fra MS Excel til LiO Calc for spesialister som jobber i MS Excel vil ikke være vanskelig. En ganske detaljert liste over funksjoner og deres korrespondanse i MS Excel og OOo Calc (LiO Calc) publisert på nettsiden til Infra-Resource, en ledende integrator av løsninger basert på OpenOffice.org i den russiske føderasjonen. Men det er også "fallgruver" her ... Dette er hurtigtaster. For de som er vant til å jobbe i MS Excel ved hjelp av hurtigtaster, kan det oppstå visse problemer, men både for vanlige brukere og for organisasjoner kan det faktum at en kopi av MS Excel kan spare minst $ 55 tjene et ganske sterkt insentiv til å bytte til LiO.


Kompatibilitet

Et av de største smertepunktene ved bytte fra MS Excel til LiO Calc er kompatibilitetsproblemer, og det største problemet er å jobbe med makroer. Dette problemet var spesielt akutt for versjon 1 og 2 av OpenOffice.org, siden versjon 3 i OpenOffice.org og LibreOffice er dette problemet praktisk talt løst. LibreOffice Calc 3.5 kan kjøre de fleste MS Excel-makroer. Aktiver / deaktiver denne funksjonen i menyen: Verktøy> Alternativer> Last inn / Lagre> VBA-egenskaper

Analogen til VBA i LiO Calc er makrospråket StarBasic (versjonen er LibreOffice Basic), som bruker samme programmeringslogikk som Microsoft Visual Basic, så det vil være lett for spesialister som har jobbet med makroer i MS Excel å venne seg til LiO beregnet.

Analogen til VBA i LiO Calc er StarBasic-makrospråket.

Likevel gjensto det fortsatt problemer. Faktum er at miljøet der makroer skrives er en kontorpakke, ikke et makrospråk. Dermed er ikke programmeringsspråket et uavhengig miljø, men helt avhengig av den interne objektstrukturen til kontorpakken og kommandoanropssystemet implementert i den. Resultatet er en teknisk umulighet for å sikre full kompatibilitet av makrospråkene til forskjellige kontorpakker. Derfor må du omskrive Microsoft Office-makroer før du kjører dem i OpenOffice.org eller LibreOffice. Videre, for ikke å gå inn på alle de tekniske detaljene, vil jeg si at det finnes konverteringsprogrammer som i stor grad forenkler arbeidet med VBA-makroer i LibreOffice. Alle mulige spørsmål om arbeid med VBA-makroer i OpenOffice-miljøet er også vurdert i stor detalj på Infra-Resource-selskapets nettsted (se ovenfor) i Knowledge Base og OpenOffice.org User Support-seksjoner.

Vel, for å konsolidere alt det ovennevnte, la oss i praksis sjekke kompatibiliteten til MS Excel- og LiO Calc-dokumenter. Til dette tar vi ferdige maler av regnskapsdokumenter fra nettsiden til tidsskriftet "Chief Accountant", som ble utarbeidet ved hjelp av MS Excel 97-2003 (XLS-utvidelse) og MS Excel 2010 (XLSX-utvidelse), og som bruker et stort antall av matematiske og økonomiske funksjoner. Som et resultat av arbeidet med filer (åpning, redigering, lagring, konvertering til ODS), ble følgende mønster lagt merke til: som regel oppstod feil ved aktivering av makroer i versjoner av filer lagret i MS Excel 98-2003 (.xls) format . I versjoner opprettet i MS Excel 2007-2010 oppstår feil mye sjeldnere.

Filer opprettet i MS Excel uten bruk av makroer kan åpnes, leses, redigeres osv. uten problemer i det hele tatt. Konvertering fra XLSX til ODS og omvendt utføres også uten feil mens tekstformateringsparametrene opprettholdes.

Filer opprettet i MS Excel uten bruk av makroer kan åpnes, leses, redigeres osv. uten problemer i det hele tatt.


konklusjoner

Derfor kan vi trekke følgende konklusjoner.

Når det gjelder LibreOffice Calc-grensesnittet, skal brukere som tidligere har jobbet i MS Excel 98-2003 ikke ha problemer med å bytte til Calc, og de som er vant til å jobbe med MS Excel 2007-2010-båndgrensesnittet må venne seg til litt en annen type arbeidsvindu.

Data i LiO Calc legges inn, redigeres, sorteres på samme måte som i MS Excel. Beregninger utføres i LiO Calc ved å bruke de samme funksjonene som i MS Excel.

Når det gjelder kompleksiteten ved å jobbe med makroer, bør det bemerkes at i versjoner av LiO Calc og OOo Calc over 3.0 er dette problemet praktisk talt løst, og hvis det oppstår feil, er det mulig å konvertere VBA-makroer til LibreOffice Basic.

Sergey RYZHKOV

Per nå, i LibreOffice, er makroadministrasjon implementert i grensesnittet på ett sted.

Problemene slik jeg ser dem er:

Fra menyen Tjeneste-> Makroer-> Administrer makroer, er FIRE forskjellige dialogbokser tilgjengelig for å administrere makroer, for hvert tilgjengelig språk separat. Basic, JavaScript, BeanShell og Python. Og de er alle forskjellige.

Dessuten tillater ikke dialogen for Basic deg å administrere makroer. For å faktisk administrere grunnleggende makroer, må du åpne en egen tilleggsdialog.

Rediger-knappen i alle dialoger lar deg redigere selve makroen, og slett ikke navnet/plasseringen til biblioteket/modulen/dialogboksen.

Jeg foreslår å avskaffe all denne skam og lage EN dialog for å administrere makroer og starte makroer.

Dette er noe sånt som dette (jeg gjorde det på engelsk, for i Bugzilla vil ALLE forstå hva det handler om og hvorfor):

På venstre side av dialogen administrerer vi bare biblioteker / moduler / dialoger, og vet også hvordan vi importerer / eksporterer. Og på høyre side jobber vi direkte med makroer: vi starter, tildeler makroer til hendelser og redigerer dem om nødvendig.

Ingen separasjon etter programmeringsspråk er nødvendig, på grunn av at LibreOffice selv skiller i hvilke programmeringsspråk makroer er skrevet i biblioteker og, slik jeg forstår det, vil ikke tillate en Python-modul å bli lansert fra Basic-biblioteket. Dette betyr at i min versjon av dialogen må du tvinge LibreOffice til å velge biblioteker / moduler på forskjellige PL-er med ikoner, og de vil ganske enkelt være hierarkisk i samme tre.

Det er en ting til: i den nåværende versjonen av LibreOffice er det nødvendig med en ekstern APSO-utvidelse for å jobbe med makroer i Python. Uten det vil det ikke engang fungere å lage det tilsvarende biblioteket. Hvorfor dette gjøres forstår jeg egentlig ikke, samt hvorfor denne utvidelsen ikke er inkludert i den grunnleggende distribusjonen av LibreOffice, siden den grunnleggende funksjonaliteten rett og slett ikke fungerer.

Så når du omarbeider makroadministrasjonsdialogen, må dette merkelige faktum også tas i betraktning.

Jeg har brukt Linux i ca 10 år. For ca 5 år siden begynte jeg å bruke OpenOffice, og for 3 år siden - LibreOffice. Til min overraskelse, og til og med skam, har jeg ikke makroer skrevet for Calc. Men for Excel har nok av dem samlet seg i løpet av denne tiden, fra enkle skjemaer og formler og slutter med kraftige tillegg for bedrifter som automatiserer utarbeidelsen av informasjon. I dag sverget jeg å sakte begynne å studere pakken og dens evner, som jeg bruker ganske mye tid på.


For de fleste er en makro noe uforståelig, og kanskje en unødvendig oppfinnelse. For dem optimerer det ikke bare arbeidet, men øker det også. Denne oppfatningen er forårsaket av manglende forståelse av prinsippene for bruk av makroer. Makroer brukes når du må utføre en handling mange ganger. Oftest er dette samme type dokumentbehandling (kompleks formatering, utvalg), noen ganger skjemaer for utfylling, formler, beregninger for grafer ... Basert på dette og på våre preferanser velger vi måten å lagre makroene våre på:

  • global(eller tillegg) - alltid tilgjengelig når du åpner programmet;
  • formel- tilgjengelig når du åpner en spesifikk mal;
  • lokale- tilgjengelig når du kun arbeider i et spesifikt dokument.

Sistnevnte brukes sjeldnere, hovedsakelig i svært komplekse interaktive dokumenter.
I dag er det kun små bedrifter som ikke har IT-spesialister i staben som bruker kontorpakker (det spiller ingen rolle LibreOffice eller MS Office) da de er "out of the box". I de fleste tilfeller er kontorpakken bare basen som tilleggene er distribuert på, og den ansatte i selskapet mistenker ofte ikke engang hvor mange små, men veldig praktiske ting som er gjort for ham før han forlater eller flytter til en annen selskap.


Å lære å skrive makroer i Excel anbefales å starte med Record Macro-verktøyet. Når du skriver ned handlingene, er det nok å bare forestille seg overflatenivået til språket og API-en du må bruke i fremtiden. Noen ganger, for raskt å lage en enkel makro, som om du "kaster den ved å skrive den ned" og deretter polerer den, og bringer den til tankene i koderedigereren.

Koble til Record Macro-verktøyet i LibreOffice 4.1

I LibreOffice 4.1 er standardfunksjonen " Ta opp makro"Er funksjonshemmet. Derfor er det første du må gjøre å aktivere det: ServiceAlternativer (VerktøyAlternativer) utvide LibreOffice-gruppen og helt nederst i elementet " Utvidede muligheter» (« Avansert") Merk av i boksen mot" Aktiver makroopptak (begrenset)» (« Aktiver makroopptak (begrenset)»).

Etter det, i menyen din: Verktøy → Makroer (Verktøy → Makroer) menypunktet " Ta opp makro» (« Ta opp makro»).

Bruke Macro Recorder i LibreOffice 4.1

For å demonstrere verktøyet " Opptak av makroer»Her er et enkelt eksempel:
1. La oss åpne et nytt Calc-dokument og lagre det på disk under et navn som passer deg;
2. Velg cellen A1;
3. La oss aktivere makroopptak Verktøy → Makroer → "Ta opp makro" (Verktøy → Makroer → "Ta opp makro"). Et panel vil vises med en enkelt knapp " Fullfør opptaket» (« Stopp opptaket»);
5. Velg cellen B1 og klikk " Fullfør opptaket» (« Stopp opptaket»);
6. Følgende vindu åpnes:

Vi lager en makro med tilgang kun i dette dokumentet, derfor åpner du elementet med navnet på dokumentet (jeg har article.ods, du vil ha dette navnet som du lagret dokumentet under) og velg det eneste eksisterende biblioteket Standard... Det er ingen moduler i den ennå, så la oss lage den.
7. Trykk på knappen " Lag modul» (« Ny modul") Og i vinduet som åpnes, skriv inn navnet på modulen.

Som standard er modulen opprettet med en tom makro kalt Hoved... La oss gå inn i feltet " Makronavn» (« Makronavn") Jeg skrev inn ønsket navn" Hoved") Og klikk" Skrive ned» (« Lagre») For å lagre makroen vi tok opp. I mitt tilfelle vil det vises en advarsel om at det allerede finnes et slikt navn for makroen.

Makroen registreres, og hvis vi nå lagrer dokumentet, vil makroen bli lagret med den. Dette betyr at hver gang vi åpner dette dokumentet, kan vi bruke denne makroen.

Starte og redigere en LibreOffice 4.1-makro

Det er to måter å kjøre en makro i LibreOffice 4.1.
Først åpner du vinduet " Kjør makro»: Verktøy → Makroer → "Kjør makro"(Verktøy → Makroer → "Kjør makro ..."), velg ønsket makro og trykk på " Løpe».

Invitasjonen er mottatt. :)

Hei hackere!
I dag vil jeg fortelle deg om bruken av makroer i LibreOffice.

Forord
Hver dag hjemme og på jobb bruker vi kontorapplikasjoner til å utføre alle oppgaver. Det hender ofte at du spesialiserer deg på én jobb og ender opp med å utføre de samme oppgavene: sett inn den samme teksten, formater den med et stort antall hurtigtaster. I alle disse tilfellene kan du spare verdifull arbeidstid ved å automatisere noe av arbeidet ditt.
Senere i artikkelen vil jeg fortelle deg om bruk av makroer i LibreOffice.

Hva er makroer og hvorfor er de det?

Makro er en sekvens av visse handlinger som kan tas opp ved hjelp av den vanlige menyen. Når du velger et makroopptak, lagres handlingene du utfører automatisk som skriptkode. Og i ditt videre arbeid vil det allerede bli utført uavhengig, nøyaktig gjenta handlingene dine i programmet. En makro kan være like enkel som den er veldig kompleks – alt avhenger av hva slags resultat du trenger for å oppnå. Hovedkriteriene for makroer er å være kraftige og enkle å bruke på samme tid. LibreOffice-makroer oppfyller akkurat disse kravene. La oss prøve det i praksis.

For å bruke pakken LibreOffice, Du må ha et forhåndsinstallert operativsystem Linux, Windows eller MacOS, samt LibreOffice-pakken installert (du kan installere den, for eksempel fra ppa-lagrene, som beskrevet i emnet)

Makrohåndtering

Før vi begynner å lage vår egen makro, må vi gjøre oss kjent med makrostyringsverktøyet. Vi går underveis Verktøy - Makroer - Organiser makroer - LibreOffice Basic-makroer(Verktøy - Makroer - Administrer makroer - LibreOffice Basic-makroer):

I venstre kolonne i vinduet kan vi se en liste over installerte standardmakroer. Ved å klikke på en av dem kan du redigere eller slette den.
Hovedoppgaven til vinduet- velg makroen du trenger, tilordne den en knapp på verktøylinjen eller assosier den med en hendelse. Ved å tilordne en knapp til en makro kan du raskt utføre de du bruker oftest.

Jeg vil merke meg at å lage en makro i automatisk modus (opptak) krever i det minste litt kunnskap om språket for å skrive makroer, siden noen ganger må vi redigere den. For å se hvordan makroen ser ut, velg makroen vi trenger og trykk Redigere(Redigere). Nedenfor er et eksempel på hvordan makroen ser ut i kildekoden:

La oss ta et enkelt eksempel. Vi har allerede satt inn noe tekst i dokumentet, og vi må lage en tittel for det, siden teksten vår vil bli brukt i forretningskorrespondanse.
Vår fremtidige makro bør kunne:
- plasser teksten øverst på midten av siden;
- skriv inn tekst som skal brukes som tittel.
Etter at vi har opprettet en makro, vil vi tildele den en knapp på verktøylinjen. Etter det vil ett klikk med musen være nok til å sette inn tittelen i dokumentet.
La oss følge trinnene.

Trinn 1.
Åpne et tekstdokument. La oss gå videre Verktøy - Makroer - Ta opp makro... Et lite "Record Macro"-vindu vises med en enkelt "End Macro"-knapp ( Stopp opptaket):

Steg 2.
La oss lage en tittel for teksten. La oss klikke på knappen "Senterjustering"("Centered"), slik at vår fremtidige tekst er nøyaktig i midten av dokumentet. Nå skriver vi selve tittelen. Du bør ikke angi forskjellige formater for den (font eller fet / kursiv / understreket), siden makroen ikke husker slike handlinger.

Trinn 3.
Etter at tittelopprettingen er fullført, klikker du på "Avslutt makro"-knappen i "Record Macro"-vinduet. Macro Organizer-vinduet vises umiddelbart. Gi den nye makroen et navn (for eksempel PostHead). Nå kan du lagre den hvor du vil (for eksempel mappen " Makroen min").

Trinn 4.
Nå trenger vi bare å legge til en knapp på verktøylinjen for makroen Posthode... Denne prosessen er ikke så enkel som den ser ut ved første øyekast.
Vi åpner LibreOffice Basic makroer, trykk på knappen " Tildele"(" Tilordne "). Følgende vindu vises Tilpass, der vi bør gå til fanen Verktøylinjer og sørg for at "Verktøylinje"-feltet er "Standard" ( Standard) .

Klikk på "Legg til"-knappen i dette vinduet ( Legge til). Et annet vindu vises - "Legg til kommandoer" ( Legg til kommandoer).
I listen til venstre vinduet "Kategorier" ( Kategori) Vi finner " LibreOffice-makroer"(helt nederst på listen). Åpne den og gå til makroen vår. Så snart vi finner den, gjenstår det å utføre det siste og enkleste trinnet. Dra Brevhodemakroen med musen til stedet for verktøylinjen der vi vil gjerne se den.
Alt, taklet oppgaven.
Nå er det bare å bruke knappen Posthode, som vi la til panelet. Åpne for eksempel et nytt dokument og klikk på knappen Posthode... Makroen vår vil lage en tittel med nøyaktig teksten vi "tildelte" til den, og vil plassere den øverst i dokumentet, nøyaktig i midten.
Er det ikke praktisk?

Utfall
Selvfølgelig, i mitt eksempel, laget vi en veldig enkel makro. Men med verktøyene ovenfor kan du også lage svært komplekse makroer. Og ikke bare i Forfatter, men også i alle andre applikasjoner av pakken LibreOffice(regneark, presentasjoner osv.). Nå som du vet hvordan du lager makroer, kan du enkelt lage dine egne for å gjøre jobben din enklere.
Hensikten med denne artikkelen er å lære det grunnleggende om å jobbe med et makroopptaksverktøy.

Jeg publiserer alt materiale i to formater - odt og pdf... Sistnevnte er praktisk for distribusjon. Eksporter til pdf utføres ved standard bruk av LibreOffice gjennom dialogen " Fil -> Eksporter til PDF". I prosessen med å korrekturlese manualen og rette feil i den, må du ofte lagre dokumentet på nytt. Og for ikke å eksportere dokumentet manuelt hver gang, tenkte jeg at det ville være fint om dette skjer automatisk ved lagring odf fil. Og kunnskap om LibreOffice makrospråk er absolutt unødvendig i dette tilfellet.

Oppgaven løses ved hjelp av makroopptaksfunksjonen. Den er ikke tilgjengelig som standard. For å aktivere det gå til " Verktøy -> Alternativer"I kapittel" LibreOffice"Velg varen" Utvidede muligheter"Og merk av i boksen ved siden av" Aktiver makroopptak».

Etter å ha startet LibreOffice på nytt i " Verktøy → Makroer"Gjenstanden" Ta opp makro».

Etter å ha klikket " Verktøy -> Makroer -> Ta opp makro"Et vindu med en knapp" Avslutt opptaket».

Konklusjonen er enkel:

  1. Aktiver makroopptak
  2. Utfør den nødvendige handlingen mens opptaket pågår. I mitt tilfelle utførte jeg nettopp eksporten til PDF via " Fil -> Eksporter til PDF»
  3. Klikk på " Avslutt opptaket»
Det er det, eksporten til PDF-makroen er registrert, du trenger bare å lagre den.

For enkelhets skyld har jeg laget en modul " Eksporter_til_PDF"i biblioteket" Standard"Og lagret makroen min i denne modulen.

Nå gjenstår det bare å tilordne utløsningen av makroen til en spesifikk hendelse. I vårt tilfelle, for å lagre dokumentet. Vi går til " Tjeneste -> Innstillinger"Til" Utviklinger».