Libreoffice calc макрос за преименуване на група файлове. Писане на VBA макроси в LibreOffice. Създаване на макрос в LibreOffice


Интерфейс

но фундаментално различен от Microsoft Office Excel 2010.

В MS Excel 2010 има така нареченото "лентово меню" - революционно решение от Microsoft, внедрено в MS Office 2007, което мнозина не харесаха, и дори бяха разработени специални помощни програми, които връщат външния вид на MS Office 2010 на MS Office 2003 г.

Нека разгледаме по-отблизо най-важните елементи от менюто на горните редактори на електронни таблици.

В редакторите на електронни таблици (MS Excel, OOo Calc, LiO Calc, IBM Lotus Symphony Spreadsheets и др.) най-важният елемент е „клетка“ и всички операции, извършвани в редакторите на електронни таблици, се прилагат специално към клетки или група клетки (редове , колони и др.). Ето защо, на първо място, ще разгледаме елементите от менюто, свързани с форматирането на клетките.

В LiO Office, както и в MS Office 2003, клетките се форматират чрез елемента от менюто "Формат / клетки" или чрез клавишната комбинация "Ctrl + 1".

В MS Excel 2010 форматирането на клетките се извършва в раздела "Начало".

Други елементи от менюто на MS Excel 2010 (вмъкване, оформление на страница, формули, данни, преглед и др.) в LiO Calc се намират в елементи от менюто с подобни имена.

Следващият най-важен елемент на електронните таблици е "Функции", или те са "Формули".

В MS Excel и LiO Calc имената (съкращенията) на всички формули са сходни, така че преходът от MS Excel към LiO Calc за специалисти, работещи в MS Excel, няма да бъде труден. Доста подробен списък с функции и тяхното съответствие в MS Excel и OOo Calc (LiO Calc), публикувани на уебсайта на Infra-Resource, водещ интегратор на решения, базирани на OpenOffice.org в Руската федерация. Но тук също има "подводни камъни" ... Това са бързи клавиши. За тези, които са свикнали да работят в MS Excel с помощта на горещи клавиши, могат да възникнат определени проблеми, но както за обикновените потребители, така и за организациите, фактът, че едно копие на MS Excel може да спести поне $ 55, може да послужи доста силен стимул за превключване към LiO.


Съвместимост

Една от най-големите болезнени точки при преминаване от MS Excel към LiO Calc са проблеми със съвместимостта, а най-големият проблем е работата с макроси. Този проблем беше особено остър за версии 1 и 2 на OpenOffice.org, тъй като версия 3 в OpenOffice.org и LibreOffice този проблем беше практически разрешен. LibreOffice Calc 3.5 може да изпълнява повечето макроси на MS Excel. Активирайте / деактивирайте тази функция в менюто: Инструменти> Опции> Зареждане / Запазване> Свойства на VBA

Аналогът на VBA в LiO Calc е макро езикът StarBasic (версията му е LibreOffice Basic), който използва същата логика на програмиране като Microsoft Visual Basic, така че ще бъде лесно за специалистите, които са работили с макроси в MS Excel, да свикнат с LiO Calc.

Аналогът на VBA в LiO Calc е макро езикът StarBasic.

Въпреки това проблемите все още остават. Факт е, че средата, в която се пишат макроси, е офис пакет, а не макро език. По този начин езикът за програмиране не е независима среда, а изцяло зависи от вътрешната обектна структура на офис пакета и внедрената в него система за извикване на команди. Резултатът е техническа невъзможност да се осигури пълна съвместимост на макроезиците на различни офис пакети. Следователно, трябва да пренапишете макроси на Microsoft Office, преди да ги стартирате в OpenOffice.org или LibreOffice. Освен това, за да не навлизам във всички технически подробности, ще кажа, че има програми за конвертиране, които значително опростяват работата с VBA макроси в LibreOffice. Всички възможни въпроси относно работата с VBA макроси в средата на OpenOffice също са разгледани много подробно на уебсайта на компанията Infra-Resource (вижте по-горе) в секциите База знания и OpenOffice.org User Support.

Е, за да консолидираме всичко по-горе, нека проверим на практика съвместимостта на документите MS Excel и LiO Calc. За целта вземаме готови шаблони на счетоводни документи от уебсайта на списание "Главен счетоводител", които са изготвени с помощта на MS Excel 97-2003 (разширение XLS) и MS Excel 2010 (разширение XLSX) и които използват голям брой на математически и икономически функции. В резултат на работа с файлове (отваряне, редактиране, запазване, конвертиране в ODS) беше забелязан следният модел: като правило, грешки при активиране на макроси възникват във версии на файлове, записани във формат MS Excel 98-2003 (.xls) . Във версиите, създадени в MS Excel 2007-2010, грешките се появяват много по-рядко.

Файлове, създадени в MS Excel без използване на макроси, могат да се отварят, четат, редактират и т.н. без никакви проблеми. Преобразуването от XLSX в ODS и обратно също се извършва без грешки, като се запазват параметрите за форматиране на текст.

Файлове, създадени в MS Excel без използване на макроси, могат да се отварят, четат, редактират и т.н. без никакви проблеми.


заключения

По този начин можем да направим следните изводи.

Що се отнася до интерфейса LibreOffice Calc, потребителите, които преди са работили в MS Excel 98-2003, не трябва да имат проблеми с превключването към Calc, а тези, които са свикнали да работят с лентовия интерфейс на MS Excel 2007-2010, ще трябва да свикнат малко друг вид работен прозорец.

Данните в LiO Calc се въвеждат, редактират, сортират по същия начин, както в MS Excel. Изчисленията се извършват в LiO Calc, като се използват същите функции като в MS Excel.

Що се отнася до сложността на работата с макроси, трябва да се отбележи, че във версии на LiO Calc и OOo Calc над 3.0 този проблем е практически решен и ако възникнат грешки, е възможно да конвертирате VBA макроси в LibreOffice Basic.

Сергей РИЖКОВ

Към момента в LibreOffice управлението на макроси се реализира в интерфейса на едно място.

Проблемите както ги виждам са:

От менюто Service-> Macros-> Manage Macros са достъпни ЧЕТИРИ различни диалога за управление на макроси, за всеки наличен език поотделно. Basic, JavaScript, BeanShell и Python. И всички те са различни.

Освен това диалоговият прозорец за Basic не ви позволява да управлявате макроси. За да управлявате действително основни макроси, трябва да отворите отделен допълнителен диалогов прозорец.

Бутонът Редактиране във всички диалогови прозорци ви позволява да редактирате самия макрос, а не изобщо името / местоположението на библиотеката / модула / диалога.

Предлагам да премахнем целия този позор и да направя ЕДИН диалог за управление на макроси и стартиране на макроси.

Това е нещо подобно (направих го на английски, защото в Bugzilla ВСЕКИ ще разбере за какво и защо става дума):

От лявата страна на диалоговия прозорец ние просто управляваме библиотеки / модули / диалози, а също така знаем как да импортираме / експортираме. А от дясната страна работим директно с макроси: стартираме, присвояваме макроси на събития и ги редактираме, ако е необходимо.

Не е необходимо разделяне по език за програмиране, поради факта, че самият LibreOffice разграничава макросите на кой език за програмиране са записани в библиотеките и, както разбирам, няма да позволи стартирането на Python модул от библиотеката Basic. Това означава, че в моята версия на диалоговия прозорец трябва да принудите LibreOffice да избира библиотеки/модули на различни PL с икони и всички те просто ще бъдат йерархично в едно и също дърво.

Има още нещо: в текущата версия на LibreOffice е необходимо външно разширение APSO за работа с макроси в Python. Без него дори няма да работи за създаване на съответната библиотека. Защо това се прави, не разбирам наистина, както и защо това разширение не е включено в основната дистрибуция на LibreOffice, тъй като основната функционалност просто не работи.

Така че, когато преработвате диалоговия прозорец за управление на макроси, този странен факт също ще трябва да се вземе предвид.

Използвам Linux от около 10 години. Преди около 5 години започнах да използвам OpenOffice, а преди 3 години - LibreOffice. За моя изненада и дори срам, нямам написани макроси за Calc. Но за Excel през това време са се натрупали достатъчно от тях, като се започне от прости форми и формули и се стигне до мощни добавки за предприятия, които автоматизират подготовката на информация. Днес се заклех бавно да започна да изучавам пакета и неговите възможности, в които прекарвам доста време.


За повечето хора макросът е нещо неразбираемо и може би ненужно изобретение. За тях това не само не оптимизира работата, но и я увеличава. Това мнение е причинено от липсата на разбиране на принципите на използване на макроси. Макросите се използват, когато трябва да извършите действие много пъти. Най-често това е един и същ тип обработка на документи (сложно форматиране, селекции), понякога формуляри за попълване, формули, изчисления за графики... Въз основа на това и на нашите предпочитания, ние избираме начина за съхраняване на нашите макроси:

  • глобален(или добавка) - винаги достъпна, когато отворите програмата;
  • формулиран- налични при отваряне на конкретен шаблон;
  • местен- налични при работа само в конкретен документ.

Последният се използва по-рядко, главно в много сложни интерактивни документи.
Днес само малки компании, които нямат ИТ специалисти в персонала си, използват офис пакети (няма значение LibreOffice или MS Office), тъй като те са "извън кутията". В повечето случаи офис пакетът е само базата, върху която се разполагат добавките, а служител на компанията често дори не подозира колко малки, но много удобни неща са направени за него, докато не напусне или се премести в друг търговско дружество.


Да се ​​научите как да пишете макроси в Excel се препоръчва да започнете с инструмента за запис на макроси. Всъщност, записвайки части от действия, достатъчно е просто да си представите повърхностното ниво на езика и API, които ще трябва да използвате в бъдеще. Също така понякога, за да създадете бързо прост макрос, сякаш го „хвърлите, като го запишете“ и след това го полирате, като го напомняте в редактора на кода.

Свързване на инструмента за запис на макроси в LibreOffice 4.1

В LibreOffice 4.1 функцията по подразбиране „ Запис на макрос„Инвалид е. Следователно, първото нещо, което трябва да направите, е да го активирате: ОбслужванеНастроики (ИнструментиНастроики) разгънете групата LibreOffice и най-отдолу в елемента " Разширени възможности» (« Разширено") Поставете отметка в квадратчето срещу" Активиране на запис на макроси (ограничено)» (« Активиране на запис на макроси (ограничено)»).

След това във вашето меню: Инструменти → Макроси (Инструменти → Макроси) елементът от менюто “ Запис на макрос» (« Запис на макрос»).

Използване на Macro Recorder в LibreOffice 4.1

За демонстрация на инструмента “ Записване на макроси»Ето един прост пример:
1. Да отворим нов Calc документ и да го запишем на диск под удобно за вас име;
2. Изберете клетката A1;
3. Нека активираме запис на макро Инструменти → Макроси → „Запис на макрос“ (Инструменти → Макроси → „Запис на макрос“). Ще се появи панел с един бутон " Завършете записа» (« Спрете записа»);
5. Изберете клетката B1и щракнете върху " Завършете записа» (« Спрете записа»);
6. Ще се отвори следният прозорец:

Правим макрос с достъп само в този документ, следователно ще отворим елемента с името на документа (имам article.ods, ще имате това име, под което сте запазили документа) и ще изберем единствената съществуваща библиотека Стандартен... В него все още няма модули, така че нека го създадем.
7. Натиснете бутона " Създаване на модул» (« Нов модул") И в прозореца, който се отваря, въведете името на модула.

По подразбиране модулът се създава с празен макрос, наречен Основен... Нека влезем в полето “ Име на макроса» (« Име на макроса") Въведох желаното име" Основен") И щракнете" Записвам» (« Запазете») За да запазите макроса, който записахме. В моя случай ще се появи предупреждение, че вече има такова име за макроса.

Макросът се записва и ако сега запазим документа, макросът ще бъде записан с него. Това означава, че всеки път, когато отворим този документ, можем да използваме този макрос.

Стартиране и редактиране на макрос на LibreOffice 4.1

Има два начина за стартиране на макрос в LibreOffice 4.1.
Първо отворете прозореца " Стартирайте макроса»: Инструменти → Макроси → „Изпълни макроса“(Инструменти → Макроси → „Изпълни макрос...“), изберете желания макрос и натиснете " Бягай».

Поканата е получена. :)

Здравейте хакери!
Днес искам да ви разкажа за използването на макроси в LibreOffice.

Предговор
Всеки ден у дома и на работа използваме офис приложения, за да изпълняваме всякакви задачи. Често се случва да се специализирате в една работа и в крайна сметка да изпълнявате едни и същи задачи: вмъкнете един и същ текст, форматирайте го с помощта на голям брой бързи клавиши. Във всички тези случаи можете да спестите ценното си работно време, като автоматизирате част от работата си.
По-късно в статията ще ви разкажа за използването на макроси в LibreOffice.

Какво представляват макросите и защо са те?

макросе последователност от определени действия, които могат да бъдат записани с помощта на обичайното меню. Когато изберете запис на макрос, действията, които извършвате, се записват автоматично като код на скрипт. И в по-нататъшната ви работа тя вече ще се извършва независимо, точно повтаряйки действията ви в програмата. Макросът може да бъде колкото прост, толкова и много сложен - всичко зависи от това какъв резултат трябва да постигнете. Основният критерий за макросите е да бъдат мощни и лесни за използване в същото време. Макросите на LibreOffice отговарят точно на тези изисквания. Нека го опитаме на практика.

За да използвате пакета LibreOffice,Трябва да имате предварително инсталирана операционна система Linux, Windows или MacOS, както и инсталиран пакет LibreOffice (можете да го инсталирате например от ppa хранилищата, както е описано в темата)

Макро управление

Преди да започнем да създаваме собствен макрос, трябва да се запознаем с инструмента за управление на макроси. Тръгваме по пътя Инструменти - Макроси - Организиране на макроси - Основни макроси на LibreOffice(Инструменти - Макроси - Управление на макроси - Основни макроси на LibreOffice):

В лявата колона на прозореца можем да видим списък с инсталирани макроси по подразбиране. Като щракнете върху някой от тях, можете да го редактирате или изтриете.
Основната задача на прозореца- изберете макроса, от който се нуждаете, задайте му бутон в лентата с инструменти или го асоциирайте със събитие. Присвояването на бутон към макрос ви позволява бързо да изпълнявате тези, които използвате най-често.

Искам да отбележа, че създаването на макрос в автоматичен режим (запис) изисква поне малко познаване на езика за писане на макроси, тъй като понякога трябва да го редактираме. За да видите как изглежда макроса, изберете макроса, от който се нуждаем, и натиснете редактиране(Редактиране). По-долу е даден пример за това как изглежда макросът в изходния код:

Да вземем прост пример. Вече имаме вмъкнат текст в документа и трябва да му направим заглавие, тъй като нашият текст ще се използва в бизнес кореспонденция.
Нашият бъдещ макрос трябва да може:
- поставете текста в горния център на страницата;
- въведете текст, който ще се използва като заглавие.
След като създадем макрос, ще му присвоим бутон в лентата с инструменти. След това едно щракване на мишката ще бъде достатъчно, за да вмъкнете заглавието в документа.
Нека следваме последователността на стъпките.

Етап 1.
Отворете текстов документ. Да продължим напред Инструменти - Макроси - Запис на макрос... Ще се появи малък прозорец "Запис на макрос" с един бутон "Край на макроса" ( Спрете записа):

Стъпка 2.
Нека създадем заглавие на текста. Да щракнем върху бутона "централно подравняване"(„Центирано“), така че бъдещият ни текст да е точно в центъра на документа. Сега пишем текста на самото заглавие. Не трябва да задавате различни формати за него (шрифт или удебелен / курсив / подчертан), тъй като макросът не помни такива действия.

Стъпка 3.
След като създаването на заглавието приключи, щракнете върху бутона "Край на макроса" в прозореца "Запис на макрос". Веднага ще се появи прозорецът Macro Organizer. Дайте име на новия макрос (например PostHead). Сега можете да го запазите където искате (например папката " Моят макрос").

Стъпка 4.
Сега просто трябва да добавим бутон в лентата с инструменти за макроса PostHead... Този процес не е толкова прост, колкото изглежда на пръв поглед.
Ние отваряме Основни макроси на LibreOffice,натиснете бутона " Присвояване"(" Assign "). Ще се появи следният прозорец Персонализирайте, в който трябва да отидем в раздела Ленти с инструментии се уверете, че полето "Toolbar" е "Standard" ( Стандартен) .

Щракнете върху бутона „Добавяне“ в този прозорец ( Добавете). Ще се появи друг прозорец - "Добавяне на команди" ( Добавете команди).
В списъка на левия прозорец "Категории" ( Категория) намираме " Макроси на LibreOffice"(в най-долната част на списъка). Отворете го и стигнете до нашия макрос. Веднага щом го намерим, остава да изпълним последната и най-проста стъпка. Плъзнете макроса на бланка с мишката до мястото в лентата с инструменти, където бихме искали да го видим.
Всичко, справи се със задачата.
Сега всичко, което трябва да направим, е да използваме бутона PostHead,които добавихме към панела. Например, отворете нов документ и щракнете върху бутона PostHead... Нашият макрос ще създаде заглавие с точно този текст, който сме му „присвоили“ и ще го постави в горната част на документа, точно в центъра.
Не е ли удобно?

Резултат
Разбира се, в моя пример създадохме много прост макрос. Но с горните инструменти можете да създавате и много сложни макроси. И не само в Писател, но и във всички други приложения на пакета LibreOffice(Електронна таблица, презентации и др.). Сега, когато знаете как да създавате макроси, можете лесно да създадете свои собствени, за да улесните работата си.
Целта на тази статия е да научите основите на работата с инструмент за запис на макроси.

Публикувам всякакви материали в два формата - отти pdf... Последното е удобно за разпространение. Експортиране към pdfизвършва се със стандартни средства на LibreOffice чрез диалоговия прозорец „ Файл -> Експортиране в PDF". В процеса на корекция на ръководството и коригиране на грешки в него, често се налага да записвате отново документа. И за да не експортирам ръчно документа всеки път, реших, че би било хубаво това да стане автоматично при записване отффайл. А познаването на макро езика LibreOffice е абсолютно ненужно в този случай.

Задачата се решава с помощта на функцията за запис на макро. Не е наличен по подразбиране. За да го активирате, отидете на " Инструменти -> Опции"В глава" LibreOffice"Изберете елемента" Разширени възможности„И поставете отметка в квадратчето до“ Активиране на запис на макроси».

След рестартиране на LibreOffice в " Инструменти → Макроси"Артикулът" Запис на макрос».

След като щракнете върху " Инструменти -> Макроси -> Запис на макрос"Прозорец с бутон" Край на записа».

Изводът е прост:

  1. Активиране на запис на макроси
  2. Извършете необходимото действие, докато записът е в ход. В моя случай току-що извърших експортирането в PDF чрез „ Файл -> Експортиране в PDF»
  3. Щракнете върху " Край на записа»
Това е всичко, експортирането в PDF макроса е записано, просто трябва да го запишете.

За удобство създадох модул “ Експортиране в_PDF"в библиотеката" Стандартен„И запазих моя макрос в този модул.

Сега остава само да зададете задействането на макроса към конкретно събитие. В нашия случай, за да запазите документа. Отиваме на " Сервиз -> Настройки"Към" Развития».