LibreOffice: Automatisk export till PDF (exempel på att arbeta med makron utan att kunna makrospråket). Skriva VBA-makron i LibreOffice Hur man aktiverar makron i libreoffice calc

Jag har använt Linux i cirka 10 år. För cirka 5 år sedan började jag använda OpenOffice-paketet, och för 3 år sedan - LibreOffice. Till min förvåning, och till och med skam, har jag inga makron skrivna för Calc. Men för Excel har tillräckligt många av dem ackumulerats under den här tiden, allt från enkla formulär och formler till kraftfulla tillägg för företag som automatiserar beredningen av information. Idag gav jag ett löfte till mig själv att sakta börja studera paketet och dess möjligheter, som jag tillbringar ganska mycket tid i.


För de flesta är ett makro något obegripligt, och kanske en onödig uppfinning. För dem optimerar det inte bara arbetet, utan ökar det också. Denna åsikt orsakas av ett missförstånd av principerna för att använda makron. Makron används när det är nödvändigt att utföra någon åtgärd många gånger. Oftast är detta samma typ av dokumentbehandling (komplex formatering, urval), ibland formulär att fylla i, formler, beräkningar för grafer... Baserat på detta och våra preferenser väljer vi sätt att lagra våra makron:

  • global(eller tillägg) - alltid tillgänglig när programmet öppnas;
  • formellt— tillgänglig när du öppnar en specifik mall.
  • lokal— tillgängligt när du endast arbetar i ett specifikt dokument.

Den senare används mer sällan, främst i mycket komplexa interaktiva dokument.
Idag är det bara små företag som inte har IT-specialister på personal som använder kontorssviter (det spelar ingen roll LibreOffice eller MS Office) eftersom de är "out of the box". I de flesta fall är kontorssviten bara en bas på vilken tillägg distribueras, och en företagsanställd misstänker ofta inte ens hur många små men mycket bekväma saker som har gjorts för honom förrän han slutar eller flyttar till ett annat företag.


Det rekommenderas att börja lära sig hur man skriver makron i Excel med verktyget "Record Macro". När du spelar in handlingar är det faktiskt tillräckligt lätt att föreställa sig ytnivån på språket och API som du kommer att behöva använda i framtiden. Ibland, för att snabbt skapa ett enkelt makro, "kastar du ut det samtidigt som du skriver ner det" och polerar sedan det, för att komma ihåg det i kodredigeraren.

Ansluta verktyget Record Macro i LibreOffice 4.1

I LibreOffice 4.1 är standardfunktionen " Spela in makro" är ur funktion. Därför är det första du behöver göra att aktivera det: Servicealternativ (Verktygalternativ) expandera LibreOffice-gruppen och längst ner i " Utökade möjligheter» (« Avancerad") sätt en bock bredvid " Aktivera makroinspelning (begränsad)» (« Aktivera makroinspelning (begränsad)»).

Efter det i din meny: Verktyg → Makron (Verktyg → Makron) menyalternativet " Spela in makro» (« Spela in makro»).

Använda verktyget Record Macro i LibreOffice 4.1

För att demonstrera verktyget " Inspelning av makron"Låt oss ge ett enkelt exempel:
1. Öppna ett nytt Calc-dokument och spara det på disken under ett namn som passar dig;
2. Välj cellen A1;
3. Aktivera makroinspelning Verktyg → Makron → "Spela in makro" (Verktyg → Makron → "Spela in makro"). En panel kommer att visas med en enda knapp " Avsluta inspelning» (« Stoppa inspelning»);
5. Välj cellen B1 och klicka på " Avsluta inspelning» (« Stoppa inspelning»);
6. Följande fönster öppnas:

Vi gör ett makro med åtkomst endast i det här dokumentet, därför kommer vi att öppna objektet med namnet på dokumentet (jag har artikel.ods, för dig kommer detta att vara namnet under vilket du sparade dokumentet) och välj den enda bibliotek närvarande Standard. Den har inga moduler än, så låt oss skapa en.
7. Tryck på knappen “ Skapa modul» (« Ny modul") och skriv in modulens namn i fönstret som öppnas.

Som standard skapas en modul med ett tomt makro som kallas Main. Ange i fältet " Makronamn» (« Makronamn") det önskade namnet jag angav " Main") och klicka på " Skriv ner» (« Spara") för att spara makrot vi spelade in. I mitt fall kommer en varning att dyka upp om att ett sådant makronamn redan finns.

Makrot spelas in, och om vi nu sparar dokumentet kommer makrot att sparas tillsammans med det. Det betyder att varje gång vi öppnar det här dokumentet kan vi använda detta makro.

Köra och redigera ett LibreOffice 4.1-makro

Det finns två sätt att köra ett makro i LibreOffice 4.1.
Öppna först fönstret Kör makro»: Verktyg → Makron → "Kör makro"(Verktyg → Makron → "Kör makro..."), välj önskat makro och tryck på " Lansera».


Gränssnitt

men i grunden skiljer sig från Microsoft Office Excel 2010.

MS Excel 2010 innehåller det så kallade "menybandet" - en revolutionerande lösning från Microsoft introducerad i MS Office 2007, som många inte gillade och till och med speciella verktyg utvecklades som återvänder utseende MS Office 2010 till MS Office 2003.

Låt oss ta en närmare titt på de viktigaste menyelementen i ovanstående kalkylbladsredigerare.

I kalkylbladsredigerare (MS Excel, OOo Calc, LiO Calc, IBM Lotus Symphony Spreadsheets, etc.) är det viktigaste elementet "cellen" och alla operationer som utförs i kalkylbladsredigerare tillämpas specifikt på celler eller deras grupp (rader, kolumner) , etc.). Låt oss därför först och främst titta på menyalternativen relaterade till cellformatering.

I LiO Office, som i MS Office 2003, utförs formatering av celler via menyalternativet - "Formatera / Celler" eller genom att använda kortkommandot "Ctrl + 1".

I MS Excel 2010 görs cellformatering på fliken "Hem".

Andra MS Excel 2010-menyalternativ (Infoga, Sidlayout, Formler, Data, Granskning, etc.) i LiO Calc finns i menyalternativ med liknande namn.

Den näst viktigaste delen av kalkylblad är "Funktioner", eller även känd som "Formler".

I MS Excel och LiO Calc är namnen (förkortningarna) på alla formler lika, så övergången från MS Excel till LiO Calc för specialister som arbetar i MS Excel kommer inte att vara svår. En ganska detaljerad lista över funktioner och deras korrespondens i MS Excel och OOo Calc (LiO Calc) publicerad på webbplatsen för företaget "Infra-Resource", en ledande integratör av lösningar baserade på OpenOffice.org i Ryska federationen. Men det finns också fallgropar här... Det här är snabbtangenter. För dem som är vana vid att arbeta i MS Excel med hjälp av snabbtangenter kan det vara en del problem, men för både vanliga användare och organisationer kan det faktum att du kan spara minst 55 USD på ett exemplar av MS Excel vara till hjälp ett ganska seriöst incitament för att byta till LiO.


Kompatibilitet

En av de största smärtpunkterna när man byter från MS Excel till LiO Calc är kompatibilitetsproblem, och det största problemet är att arbeta med makron. Detta problem var särskilt akut för versioner av OpenOffice.org 1 och 2, från och med version 3 i OpenOffice.org och LibreOffice har detta problem praktiskt taget lösts. LibreOffice Calc 3.5 kan köra de flesta MS Excel-makron. Denna funktion slås på/av i menyn: Verktyg > Alternativ > Ladda/spara > VBA-egenskaper

En analog till VBA i LiO Calc är makrospråket StarBasic (dess version är LibreOffice Basic), som använder samma programmeringslogik som Microsoft Visual Basic, så det kommer inte att vara svårt för specialister som har arbetat i MS Excel med makron att vänja sig till LiO Beräkn.

Analogen till VBA i LiO Calc är makrospråket StarBasic.

Problem kvarstod dock. Faktum är att miljön där makron skrivs är en kontorssvit, inte ett makrospråk. Programmeringsspråket är således inte en oberoende miljö, utan är helt beroende av den interna objektstrukturen i kontorssviten och det kommandoanropssystem som är implementerat i den. Resultatet är den tekniska omöjligheten att säkerställa full kompatibilitet mellan makrospråken i olika kontorssviter. Därför måste du skriva om Microsoft Office-makron innan du kör dem i OpenOffice.org eller LibreOffice. Vidare, för att inte gå in på alla tekniska detaljer, kommer jag att säga att det finns omvandlingsprogram som avsevärt förenklar arbetet med VBA-makron i LibreOffice. Alla möjliga frågor om att arbeta med VBA-makron i OpenOffice-miljön diskuteras också i detalj på Infra-Resource-företagets webbplats (se ovan) i avsnitten "Knowledge Base" och "OpenOffice.org User Support".

Tja, för att förstärka allt ovan, låt oss i praktiken kontrollera kompatibiliteten för MS Excel- och LiO Calc-dokument. För att göra detta, låt oss ta färdiga mallar för redovisningsdokument från webbplatsen för tidningen "Chief Accountant", som är förberedda med MS Excel 97-2003 (XLS-tillägg) och MS Excel 2010 (XLSX-tillägg), och som använder en ett stort antal matematiska och ekonomiska funktioner. Som ett resultat av att arbeta med filer (öppna, redigera, spara, konvertera till ODS) noterades följande mönster: som regel inträffade fel vid aktivering av makron i versioner av filer sparade i MS Excel 98-2003 (.xls) formatera. I versioner skapade i MS Excel 2007-2010 förekommer fel mycket mindre ofta.

Filer skapade i MS Excel utan att använda makron kan öppnas, läsas, redigeras etc. utan några som helst problem. Konvertering från XLSX till ODS och vice versa utförs också utan fel och textformateringsparametrarna bevaras.

Filer skapade i MS Excel utan att använda makron kan öppnas, läsas, redigeras etc. utan några som helst problem.


Slutsatser

Därför kan vi dra följande slutsatser.

När det gäller LibreOffice Calc-gränssnittet bör användare som tidigare arbetat i MS Excel 98-2003 inte ha problem med att byta till Calc, och de som är vana vid att arbeta med "ribbon"-gränssnittet i MS Excel 2007 - 2010 måste vänja sig vid det är lite en annan typ av arbetsfönster.

Data i LiO Calc matas in, redigeras och sorteras på samma sätt som i MS Excel. Beräkningar utförs i LiO Calc med samma funktioner som i MS Excel.

När det gäller svårigheterna med att arbeta med makron, bör det noteras att i versioner av LiO Calc och OOo Calc över 3.0 är detta problem praktiskt löst, och om några fel uppstår är det möjligt att konvertera VBA-makron till LibreOffice Basic.

Sergey RYZHKOV

Jag publicerar allt material i två format - odt Och pdf. Det senare är bekvämt för distribution. Exportera till pdf utförs av personal med LibreOffice genom dialog" Arkiv → Exportera till PDF" I processen att korrekturläsa manualen och rätta fel i den måste du ofta spara dokumentet på nytt. Och för att inte manuellt exportera dokumentet varje gång, tänkte jag att det vore trevligt om detta skedde automatiskt vid sparandet odf fil. Och kunskap om LibreOffice-makrospråket är absolut inte nödvändigt i det här fallet.

Problemet löses med hjälp av makroinspelningsfunktionen. Som standard är det inte tillgängligt. För att aktivera det gå till " Verktyg → Alternativ"I kapitel" LibreOffice» välj objektet « Utökade möjligheter" och markera rutan bredvid " Aktivera makroinspelning».

Efter att ha startat om LibreOffice, i " Verktyg → Makron" saken " Spela in makro».

Efter att ha tryckt på " Verktyg → Makron → Spela in makro"Ett fönster med en knapp kommer att dyka upp på skärmen. Avsluta inspelningen».

Poängen är enkel:

  1. Aktivera makroinspelning
  2. Kör nödvändig åtgärd medan inspelning pågår. I mitt fall exporterade jag helt enkelt till PDF via " Arkiv → Exportera till PDF»
  3. Klicka på knappen Avsluta inspelningen»
Det är allt, PDF-exportmakrot registreras, allt som återstår är att spara det.

För enkelhetens skull skapade jag en modul " Export_to_PDF"i biblioteket" Standard" och sparade mitt makro i den här modulen.

Nu återstår bara att tilldela makrot att utlösa på en specifik händelse. I vårt fall, för att spara dokumentet. Låt oss gå till " Service → Inställningar"till fliken" evenemang».

Inbjudan har mottagits. :)

Hej hackare!
Idag vill jag berätta om hur man använder makron i LibreOffice.

Förord
Varje dag hemma och på jobbet använder vi kontorsapplikationer för att utföra vissa uppgifter. Det händer ofta att du specialiserar dig på ett jobb och slutar med att utföra samma uppgifter: klistra in samma text, formatera den, använda ett stort antal snabbtangenter. I alla dessa fall kan du spara din värdefulla arbetstid genom att automatisera en del av ditt arbete.
Senare i artikeln kommer jag att berätta om hur man använder makron i LibreOffice.

Vad är makron och varför är de?

Makro- detta är en sekvens av vissa åtgärder som kan spelas in med hjälp av en vanlig meny. När du väljer att spela in ett makro sparas de åtgärder du utför automatiskt som skriptkod. Och i ditt framtida arbete kommer det att utföras självständigt, exakt upprepa dina handlingar i programmet. Ett makro kan vara antingen enkelt eller mycket komplext - allt beror på vilket resultat du behöver uppnå. Huvudkriterierna för makron är att vara kraftfulla och samtidigt lätta att använda. LibreOffice-makron uppfyller exakt dessa krav. Låt oss prova detta i praktiken.

För att använda paketet LibreOffice Du måste ha den förinstallerad operativ system Linux, Windows eller MacOS, såväl som det installerade LibreOffice-paketet (du kan installera det, till exempel från ppa-förråd, som beskrivs i detta ämne)

Makrohantering

Innan vi börjar skapa vårt makro måste vi bli bekanta med makrohanteringsverktyget. Låt oss gå längs vägen Verktyg - Makron - Organisera makron - LibreOffice Basic-makron(Verktyg - Makron - Makrohantering - LibreOffice Basic Makron):

I den vänstra kolumnen i fönstret kan vi se en lista över installerade makron som standard. Genom att klicka på någon av dem kan du redigera eller ta bort den.
Fönstrets huvuduppgift- välj det makro du behöver, tilldela det en knapp i verktygsfältet eller koppla det till en händelse. Genom att tilldela en knapp till ett makro kan du snabbt köra de mest använda.

Jag skulle vilja notera att att skapa ett makro i automatiskt läge (inspelning) kräver åtminstone lite kunskap om språket för att skriva makron, eftersom vi ibland kommer att behöva redigera det. För att se hur ett makro ser ut, välj det makro vi behöver och klicka Redigera(Redigera). Nedan är ett exempel på hur ett makro ser ut i källkoden:

Låt oss ta ett enkelt exempel. Vi har redan infogat en del text i dokumentet och vi måste skapa en rubrik för det, eftersom vår text kommer att användas i affärskorrespondens.
Vårt framtida makro kommer att behöva kunna:
- placera texten högst upp i mitten av sidan;
- skriv in texten som ska användas som titel.
När vi har skapat makrot kommer vi att tilldela det en knapp i verktygsfältet. Efteråt räcker ett klick för att infoga en titel i dokumentet.
Låt oss följa sekvensen av steg.

Steg 1.
Öppna ett textdokument. Låt oss gå vidare Verktyg - Makron - Spela in makro. Ett litet "Record Macro"-fönster visas med en enda "End Macro"-knapp ( Stoppa inspelning):

Steg 2.
Låt oss skapa en textrubrik. Klicka på knappen "Center justering"("Center"), så att vår framtida text är exakt i mitten av dokumentet. Nu skriver vi själva titeltexten. Du bör inte ställa in olika format för den (teckensnitt eller fet/kursiv/understruken), eftersom makrot inte kommer ihåg sådana åtgärder.

Steg 3.
När titeln är klar klickar du på knappen Avsluta makro i fönstret Spela in makro. Fönstret Macro Organizer visas omedelbart. Ge det nya makrot ett namn (till exempel PostHead). Nu kan du spara den på den plats där du vill (till exempel mappen " Mitt makro").

Steg 4.
Nu behöver vi bara lägga till en knapp i verktygsfältet för makrot PostHead. Denna process är inte så enkel som den kan verka vid första anblicken.
Öppning LibreOffice Basic makron, tryck på knappen " Tilldela" ("Tilldela") Följande fönster visas Anpassa, där vi ska gå till fliken Verktygsfält och se till att fältet "Verktygsfält" är inställt på "Standard" ( Standard) .

Klicka på knappen "Lägg till" i det här fönstret ( Lägg till). Ett annat fönster kommer att visas - "Lägga till kommandon" ( Lägg till kommandon).
I listan i det vänstra fönstret "Kategorier" ( Kategori) hitta " LibreOffice-makron" (längst ner i listan). Öppna det och gå till vårt makro. När du har hittat det återstår bara att slutföra det sista och enklaste steget. Dra brevhuvudmakrot med musen till den plats i verktygsfältet där vi skulle gillar att se det.
Det var allt, vi klarade uppgiften.
Nu behöver vi bara använda knappen PostHead, som vi lagt till i panelen. Öppna till exempel ett nytt dokument och klicka på knappen PostHead. Vårt makro kommer att skapa en rubrik med exakt den text som vi "tilldelade" den och placera den högst upp i dokumentet exakt i mitten.
Är det verkligen bekvämt?

Slutsats
Naturligtvis, i mitt exempel skapade vi ett mycket enkelt makro. Men med hjälp av verktygen som beskrivs ovan kan du skapa mycket komplexa makron. Och inte bara i Författare, men också i alla andra tillämpningar av paketet LibreOffice(Kalkylblad, Presentationer, etc.). Nu när du vet hur du skapar makron kan du enkelt skapa dina egna för att göra ditt arbete enklare.
Syftet med den här artikeln är att lära dig grunderna för att använda ett makroinspelningsverktyg.

Från och med nu, i LibreOffice, implementeras makrohantering i gränssnittet via ett ställe.

Problemen som jag ser dem är:

Från menyn Verktyg->Makron->Hantera makron, finns FYRA olika dialogrutor för att hantera makron tillgängliga, för varje tillgängligt språk separat. Basic, JavaScript, BeanShell och Python. Och de är alla olika.

Dessutom tillåter inte dialogrutan för Basic dig att hantera makron. För att faktiskt hantera grundläggande makron måste du öppna en separat ytterligare dialogruta.

Med knappen Redigera i alla dialogrutor kan du redigera själva makrot, och inte namnet/platsen för biblioteket/modulen/dialogrutan.

Jag föreslår att avskaffa all denna skam och skapa EN dialog för att hantera makron och köra makron.

Något så här (jag gjorde det på engelska, för i bugzilla kommer ALLA att förstå vad vi pratar om och varför):

På vänster sida av dialogen hanterar vi bibliotek/moduler/dialoger, och vet även hur man importerar/exporterar. Och på höger sida arbetar vi direkt med makron: vi startar dem, tilldelar makron till händelser och redigerar dem vid behov.

Ingen åtskillnad efter programmeringsspråk är nödvändig, på grund av att LibreOffice själv särskiljer i vilket programmeringsspråk makrona i biblioteken är skrivna och, som jag förstår det, inte kommer att tillåta en Python-modul att startas från Basic-biblioteket. Det betyder att jag i min version av dialogen måste tvinga LibreOffice att markera bibliotek/moduler på olika språk med ikoner och de kommer helt enkelt att vara hierarkiskt i ett träd.

Det finns en sak till: i den nuvarande versionen av LibreOffice behöver du den externa tillägget APSO för att arbeta med makron i Python. Utan det kommer du inte ens att kunna skapa motsvarande bibliotek. Jag förstår inte riktigt varför detta gjordes, och inte heller varför detta tillägg inte ingår i det grundläggande LibreOffice-paketet, eftersom den grundläggande funktionaliteten helt enkelt inte fungerar.

Så när man omarbetar makrohanteringsdialogrutan måste man också ta hänsyn till detta märkliga faktum.


Topp