Utilizarea macrocomenzilor în LibreOffice. Cum să activați macrocomenzi în LibreOffice Calc Macros în libreoffice

Invitația a fost primită. :)

Bună, hackeri!
Astăzi vreau să vă spun despre utilizarea macrocomenzilor în LibreOffice.

Prefaţă
În fiecare zi, acasă și la serviciu, folosim aplicații de birou pentru a îndeplini unele sarcini. Se întâmplă adesea să vă specializați într-un singur loc de muncă și să ajungeți să efectuați aceleași sarcini: lipirea aceluiași text, formatarea acestuia, folosirea unui număr mare de taste rapide. În toate aceste cazuri, vă puteți economisi timp de lucru valoros, automatizând o parte din munca dvs.
Mai târziu în articol vă voi spune despre utilizarea macrocomenzilor în LibreOffice.

Ce sunt macrocomenzile și de ce sunt?

Macro- aceasta este o secvență de anumite acțiuni care pot fi înregistrate folosind un meniu obișnuit. Când alegeți să înregistrați o macrocomandă, acțiunile pe care le efectuați sunt salvate automat ca cod de script. Și în munca dvs. viitoare va fi efectuată independent, repetând exact acțiunile dvs. în program. O macrocomandă poate fi fie simplă, fie foarte complexă - totul depinde de rezultatul pe care trebuie să îl obțineți. Principalele criterii pentru macrocomenzi sunt să fie puternice și, în același timp, ușor de utilizat. Macrocomenzile LibreOffice îndeplinesc exact aceste cerințe. Să încercăm asta în practică.

Pentru a utiliza pachetul LibreOffice Trebuie să aveți un sistem de operare Linux, Windows sau MacOS preinstalat, precum și pachetul LibreOffice instalat ( îl puteți instala, de exemplu, din depozitele ppa, așa cum este descris în acest subiect)

Managementul macro

Înainte de a începe să ne creăm macrocomandă, trebuie să ne familiarizăm cu instrumentul de gestionare a macrocomenzii. Să mergem pe potecă Instrumente - Macro-uri - Organizare macrocomenzi - Macro-uri de bază LibreOffice(Instrumente - Macro-uri - Gestionare macro-comenzi - LibreOffice Basic Macros):

În coloana din stânga a ferestrei putem vedea o listă de macrocomenzi instalate implicit. Făcând clic pe oricare dintre ele, îl puteți edita sau șterge.
Sarcina principală a ferestrei- selectați macrocomanda de care aveți nevoie, atribuiți-i un buton pe bara de instrumente sau asociați-o cu un eveniment. Atribuirea unui buton unei macrocomenzi vă permite să le executați rapid pe cele mai frecvent utilizate.

Aș dori să remarc că crearea unei macrocomenzi în modul automat (înregistrare) necesită cel puțin puține cunoștințe ale limbajului de scriere a macrocomenzilor, deoarece uneori va trebui să o edităm. Pentru a vedea cum arată o macrocomandă, selectați macrocomandă de care avem nevoie și faceți clic Editați | ×(Editați | ×). Mai jos este un exemplu de cum arată o macrocomandă în codul sursă:

Să luăm un exemplu simplu. Avem ceva text deja inserat în document și trebuie să îi facem un titlu, deoarece textul nostru va fi folosit în corespondența de afaceri.
Viitoarea noastră macrocomandă va trebui să poată:
- plasați textul în centrul de sus al paginii;
- introduceți textul care va fi folosit ca titlu.
După ce creăm macro-ul, îi vom atribui un buton pe bara de instrumente. După aceea, un singur clic va fi suficient pentru a insera un titlu în document.
Să urmăm succesiunea pașilor.

Pasul 1.
Deschideți un document text. Sa trecem peste Instrumente - Macrocomenzi - Înregistrare macrocomandă. Va apărea o mică fereastră „Înregistrare macrocomandă” cu un singur buton „Încheierea macrocomenzii” ( Opriți înregistrarea):

Pasul 2.
Să creăm un titlu de text. Faceți clic pe butonul „Alinierea la centru”(„Centru”), astfel încât viitorul nostru text să fie exact în centrul documentului. Acum scriem textul titlului în sine. Nu ar trebui să setați formate diferite pentru acesta (font sau bold/italic/subliniat), deoarece macro-ul nu își amintește astfel de acțiuni.

Pasul 3.
Odată ce titlul este complet, faceți clic pe butonul End Macro din fereastra Record Macro. Va apărea imediat fereastra Macro Organizer. Dați un nume noii macrocomenzi (de exemplu, PostHead). Acum îl puteți salva în locația în care doriți (de exemplu, folderul " Macro-ul meu").

Pasul 4.
Acum trebuie doar să adăugăm un buton pe bara de instrumente pentru macrocomandă Post Head. Acest proces nu este atât de simplu pe cât ar părea la prima vedere.
Deschidere Macro-uri de bază LibreOffice, apasa butonul " Atribui" ("Atribuiți") Apare următoarea fereastră Personalizați, în care ar trebui să mergem la fila Bare de instrumenteși asigurați-vă că câmpul „Toolbar” este setat la „Standard” ( Standard) .

Faceți clic pe butonul „Adăugați” din această fereastră ( Adăuga). Va apărea o altă fereastră - „Adăugarea comenzilor” ( Adăugați comenzi).
În lista ferestrei din stânga „Categorii” ( Categorie) găsi " Macro-urile LibreOffice" (în partea de jos a listei). Deschideți-o și ajungeți la macrocomandă. Odată găsită, tot ce rămâne este să finalizați ultimul și cel mai simplu pas. Trageți macrocomanda Antet cu mouse-ul în locul din bara de instrumente unde am imi place sa o vad.
Gata, am finalizat sarcina.
Acum tot ce trebuie să facem este să folosim butonul PostHead, pe care l-am adăugat la panou. De exemplu, deschideți un document nou și faceți clic pe butonul Post Head. Macrocomanda noastră va crea un titlu cu exact textul pe care i l-am „alocat” și îl va plasa în partea de sus a documentului exact în centru.
Este chiar convenabil?

Concluzie
Desigur, în exemplul meu am creat o macrocomandă foarte simplă. Dar cu ajutorul instrumentelor descrise mai sus, puteți crea macrocomenzi foarte complexe. Și nu numai în Scriitor, dar și în toate celelalte aplicații ale pachetului LibreOffice(Foaie de calcul, Prezentări etc.). Acum că știți cum să creați macrocomenzi, le puteți crea cu ușurință pe ale dvs. pentru a vă ușura munca.
Scopul acestui articol este de a învăța elementele de bază ale utilizării unui instrument de înregistrare macro.

De acum, în LibreOffice, managementul macro este implementat în interfață printr-un singur loc.

Problemele așa cum le văd eu sunt:

Din meniul Tools->Macros->Manage Macros, sunt disponibile PATRU casete de dialog diferite pentru gestionarea macrocomenzilor, pentru fiecare limbă disponibilă separat. Basic, JavaScript, BeanShell și Python. Și toate sunt diferite.

Mai mult, dialogul pentru Basic nu vă permite să gestionați macrocomenzi. Pentru a gestiona efectiv macrocomenzile de bază, trebuie să deschideți un dialog suplimentar separat.

Butonul Editare din toate casetele de dialog vă permite să editați macrocomandă în sine, și nu numele/locația bibliotecii/modulului/dialogului.

Îmi propun să desființăm toată această rușine și să facem SINGUL dialog pentru gestionarea macrocomenzilor și rularea macrocomenzilor.

Ceva de genul acesta (am făcut-o în engleză, pentru că în bugzilla în felul acesta, TOȚI vor înțelege despre ce vorbim și de ce):

În partea stângă a dialogului, gestionăm biblioteci/module/dialoguri și, de asemenea, știm cum să importăm/exportăm. Și în partea dreaptă lucrăm direct cu macrocomenzi: le lansăm, atribuim macrocomenzi evenimentelor și le edităm, dacă este necesar.

Nu este necesară separarea prin limbaj de programare, datorită faptului că LibreOffice însuși distinge în ce limbaj de programare sunt scrise macrocomenzile din biblioteci și, după cum am înțeles, nu va permite lansarea unui modul Python din biblioteca Basic. Aceasta înseamnă că, în versiunea mea a dialogului, trebuie să forțez LibreOffice să evidențieze biblioteci/module în diferite limbi cu pictograme și toate vor fi pur și simplu ierarhic într-un singur arbore.

Mai este un punct: în versiunea actuală a LibreOffice, pentru a lucra cu macrocomenzi în Python, aveți nevoie de extensia externă APSO. Fără el, nici măcar nu veți putea crea biblioteca corespunzătoare. Nu înțeleg cu adevărat de ce s-a făcut acest lucru și nici de ce această extensie nu este inclusă în pachetul de bază LibreOffice, deoarece funcționalitatea de bază pur și simplu nu funcționează.

Deci, atunci când reluați dialogul de gestionare a macrocomenzilor, acest fapt ciudat va trebui, de asemenea, luat în considerare.

Invitația a fost primită. :)

Bună, hackeri!
Astăzi vreau să vă spun despre utilizarea macrocomenzilor în LibreOffice.

Prefaţă
În fiecare zi, acasă și la serviciu, folosim aplicații de birou pentru a îndeplini unele sarcini. Se întâmplă adesea să vă specializați într-un singur loc de muncă și să ajungeți să efectuați aceleași sarcini: lipirea aceluiași text, formatarea acestuia, folosirea unui număr mare de taste rapide. În toate aceste cazuri, vă puteți economisi timp de lucru valoros, automatizând o parte din munca dvs.
Mai târziu în articol vă voi spune despre utilizarea macrocomenzilor în LibreOffice.

Ce sunt macrocomenzile și de ce sunt?

Macro- aceasta este o secvență de anumite acțiuni care pot fi înregistrate folosind un meniu obișnuit. Când alegeți să înregistrați o macrocomandă, acțiunile pe care le efectuați sunt salvate automat ca cod de script. Și în munca dvs. viitoare va fi efectuată independent, repetând exact acțiunile dvs. în program. O macrocomandă poate fi fie simplă, fie foarte complexă - totul depinde de rezultatul pe care trebuie să îl obțineți. Principalele criterii pentru macrocomenzi sunt să fie puternice și, în același timp, ușor de utilizat. Macrocomenzile LibreOffice îndeplinesc exact aceste cerințe. Să încercăm asta în practică.

Pentru a utiliza pachetul LibreOffice Trebuie să aveți un sistem de operare Linux, Windows sau MacOS preinstalat, precum și pachetul LibreOffice instalat ( îl puteți instala, de exemplu, din depozitele ppa, așa cum este descris în subiect)

Managementul macro

Înainte de a începe să ne creăm macrocomandă, trebuie să ne familiarizăm cu instrumentul de gestionare a macrocomenzii. Să mergem pe potecă Instrumente - Macro-uri - Organizare macrocomenzi - Macro-uri de bază LibreOffice(Instrumente - Macro-uri - Gestionare macro-comenzi - LibreOffice Basic Macros):

În coloana din stânga a ferestrei putem vedea o listă de macrocomenzi instalate implicit. Făcând clic pe oricare dintre ele, îl puteți edita sau șterge.
Sarcina principală a ferestrei- selectați macrocomanda de care aveți nevoie, atribuiți-i un buton pe bara de instrumente sau asociați-o cu un eveniment. Atribuirea unui buton unei macrocomenzi vă permite să le executați rapid pe cele mai frecvent utilizate.

Aș dori să remarc că crearea unei macrocomenzi în modul automat (înregistrare) necesită cel puțin puține cunoștințe ale limbajului de scriere a macrocomenzilor, deoarece uneori va trebui să o edităm. Pentru a vedea cum arată o macrocomandă, selectați macrocomandă de care avem nevoie și faceți clic Editați | ×(Editați | ×). Mai jos este un exemplu de cum arată o macrocomandă în codul sursă:

Să luăm un exemplu simplu. Avem ceva text deja inserat în document și trebuie să îi facem un titlu, deoarece textul nostru va fi folosit în corespondența de afaceri.
Viitoarea noastră macrocomandă va trebui să poată:
- plasați textul în centrul de sus al paginii;
- introduceți textul care va fi folosit ca titlu.
După ce creăm macro-ul, îi vom atribui un buton pe bara de instrumente. După aceea, un singur clic va fi suficient pentru a insera un titlu în document.
Să urmăm succesiunea pașilor.

Pasul 1.
Deschideți un document text. Sa trecem peste Instrumente - Macrocomenzi - Înregistrare macrocomandă. Va apărea o mică fereastră „Înregistrare macrocomandă” cu un singur buton „Încheierea macrocomenzii” ( Opriți înregistrarea):

Pasul 2.
Să creăm un titlu de text. Faceți clic pe butonul „Alinierea la centru”(„Centru”), astfel încât viitorul nostru text să fie exact în centrul documentului. Acum scriem textul titlului în sine. Nu ar trebui să setați formate diferite pentru acesta (font sau bold/italic/subliniat), deoarece macro-ul nu își amintește astfel de acțiuni.

Pasul 3.
Odată ce titlul este complet, faceți clic pe butonul End Macro din fereastra Record Macro. Va apărea imediat fereastra Macro Organizer. Dați un nume noii macrocomenzi (de exemplu, PostHead). Acum îl puteți salva în locația în care doriți (de exemplu, folderul " Macro-ul meu").

Pasul 4.
Acum trebuie doar să adăugăm un buton pe bara de instrumente pentru macrocomandă Post Head. Acest proces nu este atât de simplu pe cât ar părea la prima vedere.
Deschidere Macro-uri de bază LibreOffice, apasa butonul " Atribui" ("Atribuiți") Apare următoarea fereastră Personalizați, în care ar trebui să mergem la fila Bare de instrumenteși asigurați-vă că câmpul „Toolbar” este setat la „Standard” ( Standard) .

Faceți clic pe butonul „Adăugați” din această fereastră ( Adăuga). Va apărea o altă fereastră - „Adăugarea comenzilor” ( Adăugați comenzi).
În lista ferestrei din stânga „Categorii” ( Categorie) găsi " Macro-urile LibreOffice" (în partea de jos a listei). Deschideți-o și ajungeți la macrocomandă. Odată găsită, tot ce rămâne este să finalizați ultimul și cel mai simplu pas. Trageți macrocomanda Antet cu mouse-ul în locul din bara de instrumente unde am imi place sa o vad.
Gata, am finalizat sarcina.
Acum tot ce trebuie să facem este să folosim butonul PostHead, pe care l-am adăugat la panou. De exemplu, deschideți un document nou și faceți clic pe butonul Post Head. Macrocomanda noastră va crea un titlu cu exact textul pe care i l-am „alocat” și îl va plasa în partea de sus a documentului exact în centru.
Este chiar convenabil?

Concluzie
Desigur, în exemplul meu am creat o macrocomandă foarte simplă. Dar cu ajutorul instrumentelor descrise mai sus, puteți crea macrocomenzi foarte complexe. Și nu numai în Scriitor, dar și în toate celelalte aplicații ale pachetului LibreOffice(Foaie de calcul, Prezentări etc.). Acum că știți cum să creați macrocomenzi, le puteți crea cu ușurință pe ale dvs. pentru a vă ușura munca.
Scopul acestui articol este de a învăța elementele de bază ale utilizării unui instrument de înregistrare macro.

Public orice materiale în două formate - odtȘi pdf. Acesta din urmă este convenabil pentru distribuție. Export către pdf efectuate folosind instrumente standard LibreOffice prin dialogul „ Fișier → Export în PDF" În procesul de corectare a manualului și de corectare a erorilor din acesta, de multe ori trebuie să salvați din nou documentul. Și pentru a nu exporta manual documentul de fiecare dată, m-am gândit că ar fi bine dacă acest lucru se întâmplă automat la salvare odf fişier. Și cunoașterea limbajului macro LibreOffice nu este absolut necesară în acest caz.

Problema este rezolvată folosind funcția de înregistrare macro. Implicit nu este disponibil. Pentru a-l activa accesați „ Instrumente → Opțiuni„În capitolul” LibreOffice» selectați articolul « Capabilitati extinse" și bifați caseta de lângă " Activați înregistrarea macro».

După repornirea LibreOffice, în „ Instrumente → Macrocomenzi» articolul « Înregistrați macrocomandă».

După apăsarea „ Instrumente → Macrocomenzi → Înregistrare macrocomandă„Pe ecran va apărea o fereastră cu un buton. Încheiați înregistrarea».

Ideea este simplă:

  1. Activați înregistrarea macro
  2. Efectuați acțiunea necesară în timp ce înregistrarea este în curs. În cazul meu, pur și simplu am exportat în PDF prin " Fișier → Export în PDF»
  3. Faceți clic pe butonul Încheiați înregistrarea»
Gata, macro-ul de export PDF este înregistrat, nu mai rămâne decât să o salvezi.

Pentru comoditate, am creat un modul " Exportă_în_PDF„în bibliotecă” Standard" și mi-am salvat macrocomanda în acest modul.

Acum tot ce rămâne este să atribui macrocomenzii care să declanșeze un anumit eveniment. În cazul nostru, pentru a salva documentul. Să mergem la " Serviciu → Setări"la fila" Evenimente».


Interfață

dar este fundamental diferit de Microsoft Office Excel 2010.

MS Excel 2010 conține așa-numita „panglică de meniu” - o soluție revoluționară de la Microsoft introdusă în MS Office 2007, care nu a plăcut multora, și chiar au fost dezvoltate utilități speciale care readuc aspectul MS Office 2010 la MS Office 2003.

Să aruncăm o privire mai atentă la cele mai importante elemente de meniu ale editorilor de foi de calcul de mai sus.

În editorii de foi de calcul (MS Excel, OOo Calc, LiO Calc, IBM Lotus Symphony Spreadsheets etc.), cel mai important element este „celula” și toate operațiunile efectuate în editorii de foi de calcul sunt aplicate în mod specific celulelor sau grupului acestora (rânduri, coloane). , etc.). Prin urmare, în primul rând, să ne uităm la elementele de meniu legate de formatarea celulelor.

În LiO Office, ca și în MS Office 2003, formatarea celulelor se efectuează prin elementul de meniu - „Format / Celule” sau folosind comanda rapidă de la tastatură „Ctrl + 1”.

În MS Excel 2010, formatarea celulelor se face în fila „Acasă”.

Alte elemente de meniu MS Excel 2010 (Inserare, Aspect pagină, Formule, Date, Revizuire etc.) în LiO Calc sunt localizate în elementele de meniu cu nume similare.

Următorul element cel mai important al foilor de calcul sunt „Funcțiile” sau cunoscute și sub numele de „Formulele”.

În MS Excel și LiO Calc, numele (abrevierile) tuturor formulelor sunt similare, astfel încât trecerea de la MS Excel la LiO Calc pentru specialiștii care lucrează în MS Excel nu va fi dificilă.O listă destul de detaliată a funcțiilor și corespondența lor în MS Excel și OOo Calc (LiO Calc) publicat pe site-ul companiei „Infra-Resource”, un integrator de top de soluții bazate pe OpenOffice.org în Federația Rusă. Dar există și capcane aici... Acestea sunt taste rapide. Pentru cei care sunt obișnuiți să lucreze în MS Excel folosind taste rapide, pot exista unele probleme, dar atât pentru utilizatorii obișnuiți, cât și pentru organizații, faptul că puteți economisi cel puțin 55 USD pe o copie a MS Excel poate fi util un stimulent destul de serios pentru trece la LiO.


Compatibilitate

Unul dintre cele mai mari probleme la trecerea de la MS Excel la LiO Calc este problemele de compatibilitate, iar cea mai mare problemă este lucrul cu macrocomenzi. Această problemă a fost deosebit de acută pentru versiunile de OpenOffice.org 1 și 2, începând cu versiunea 3 în OpenOffice.org și LibreOffice această problemă a fost practic rezolvată. LibreOffice Calc 3.5 poate rula majoritatea macrocomenzilor MS Excel. Această funcție este activată/dezactivată în meniu: Instrumente > Opțiuni > Încărcare/Salvare > Proprietăți VBA

Un analog al VBA în LiO Calc este limbajul macro StarBasic (versiunea sa este LibreOffice Basic), care folosește aceeași logică de programare ca Microsoft Visual Basic, așa că nu va fi greu pentru specialiștii care au lucrat în MS Excel cu macrocomenzi să se obișnuiască la LiO Calc.

Analogul VBA în LiO Calc este macrolimbajul StarBasic.

Cu toate acestea, problemele au rămas. Cert este că mediul în care sunt scrise macro-urile este o suită de birou, nu un limbaj macro. Astfel, limbajul de programare nu este un mediu independent, ci este complet dependent de structura obiectelor interne a suitei de birou și de sistemul de apelare a comenzilor implementat în aceasta. Rezultatul este imposibilitatea tehnică de a asigura compatibilitatea deplină a limbajelor macro ale diferitelor suite de birou. Prin urmare, trebuie să rescrieți macrocomenzile Microsoft Office înainte de a le rula în OpenOffice.org sau LibreOffice. Mai departe, pentru a nu intra în toate detaliile tehnice, voi spune că există programe de conversie care simplifică foarte mult lucrul cu macrocomenzi VBA în LibreOffice. Toate întrebările posibile referitoare la lucrul cu macrocomenzi VBA în mediul OpenOffice sunt, de asemenea, discutate în detaliu pe site-ul companiei Infra-Resource (vezi mai sus) în secțiunile „Baza de cunoștințe” și „Suport pentru utilizatori OpenOffice.org”.

Ei bine, pentru a consolida toate cele de mai sus, să verificăm în practică compatibilitatea documentelor MS Excel și LiO Calc. Pentru a face acest lucru, să luăm șabloane gata făcute pentru documente contabile de pe site-ul revistei „Contabil șef”, care sunt pregătite folosind MS Excel 97-2003 (extensia XLS) și MS Excel 2010 (extensia XLSX) și care utilizează o număr mare de funcţii matematice şi economice. Ca urmare a lucrului cu fișiere (deschidere, editare, salvare, conversie în ODS), a fost observat următorul model: de regulă, au apărut erori la activarea macrocomenzilor în versiunile fișierelor salvate în MS Excel 98-2003 (.xls) format. În versiunile create în MS Excel 2007-2010, erorile apar mult mai rar.

Fișierele create în MS Excel fără a utiliza macrocomenzi pot fi deschise, citite, editate etc. fara nici o problema. Conversia de la XLSX la ODS și invers se realizează, de asemenea, fără erori, iar parametrii de formatare a textului sunt păstrați.

Fișierele create în MS Excel fără a utiliza macrocomenzi pot fi deschise, citite, editate etc. fara nici o problema.


concluzii

Astfel, putem trage următoarele concluzii.

În ceea ce privește interfața LibreOffice Calc, utilizatorii care au lucrat anterior în MS Excel 98-2003 nu ar trebui să aibă probleme la trecerea la Calc, iar cei care sunt obișnuiți să lucreze cu interfața „panglică” a MS Excel 2007 - 2010 vor trebui să se obișnuiască cu este un pic un alt tip de fereastră de lucru.

Datele din LiO Calc sunt introduse, editate și sortate în același mod ca în MS Excel. Calculele sunt efectuate în LiO Calc folosind aceleași funcții ca în MS Excel.

În ceea ce privește dificultățile de lucru cu macrocomenzi, trebuie remarcat faptul că în versiunile LiO Calc și OOo Calc de peste 3.0 această problemă este practic rezolvată, iar dacă apar erori, este posibilă convertirea macrocomenzilor VBA în LibreOffice Basic.

Serghei RYZHKOV