Како креирати и покренути макро у ЛибреОффице Цалц-у на Линук-у

ЛибреОффице је светски одговор ФОСС-а на главни и власнички Мицрософт Оффице пакет. Развијен од стране водећих програмера Оффице Продуцтивити софтвера и сарадника, нуди потпуну замену за Мицрософт Оффице на више оперативних система.

ЛибреОффице апликација еквивалентна Мицрософт Екцел-у се зове ЛибреОффице Цалц. Долази са бројним функцијама и интерфејсом сличним Екцел-у. Има уграђени Мацро мотор за развој и покретање макроа за аутоматизацију. Међутим, не подржава Висуал Басиц, али подржава сопствени језик; ЛибреОффице Басиц, за програмирање макроа.

ЛибреОффице пакет долази унапред инсталиран у већини Линук дистрибуција, укључујући Убунту, Дебиан, Федора и ЦентОС.

Креирање и покретање макроа у ЛибреОффице Цалц

Прво, направимо радни лист са неким примерима података.

Да бисте отворили организатор макроа, идите на Алатке » Макрои » Организуј макрое » Основе ЛибреОффице-а. То ће отворити ЛибреОффице Басиц Мацрос прозор као што је приказано на слици испод.

Унесите ново име за макро, а затим кликните на дугме Ново у доњем десном углу прозора.

Сада би требало да видите екран за уређивање макроа у ЛибреОффице Басиц-у.

Као што видимо, ручно креирани макрои се подразумевано креирају под „Моји макрои и дијалози -> Стандардни -> Модул1”.

Тренутно постоје два макроа: један је Главни, што је подразумевани празан макро, а други јесте тест, макро који смо креирали изнад. Сада ћемо побољшати тест макро.

Наш макро ће обавити следеће задатке:

  • Проверите који све људи имају професију писац
  • Направите нови лист
  • Премести све уносе за писце у нови лист

Следи наш макро:

Субтест рем Премести уносе са професијом Вритер на нови лист дим црс(8) као објекат дим ј као Интегер дим проф као објекат дим и као Интегер дим сх као објекат дим сх2 као објекат сх = ТхисЦомпонент.Схеетс(0) црс(0) = сх.гетЦеллРангеБиПоситион(0, 0, 3, 0) ј = 1 за и = 1 до 5 к = 1 проф = сх.ГетЦеллБиПоситион(3, и) рем Сачувајте цео ред у променљивој Ако проф.стринг = "Вритер" Тада црс(ј) = сх.гетЦеллРангеБиПоситион(0, и, 3, и) ј = ј + 1 Енд Иф нект и рем Сада креирајте нови лист и упишите ове податке тамо ТхисЦомпонент.Схеетс.инсертНевБиНаме("Вритерс", 1) сх2 = ТхисЦомпонент.Схеетс(1) и = 0 Уради Док није ИсНулл(црс(и)) сх2ранге = сх2.гетЦеллРангеБиПоситион(0, и, 3, и) сх2ранге.сетДатаАрраи(црс(и).гетДатаАрраи) и = и + 1 Лооп Енд Суб

Дозволите ми да вам објасним горњи макро део по део.

Суб тест . . . Енд Суб

тест је назив нашег макроа, па је у коду означен као Суб тест (под = потпрограм). Слично завршавамо овај макро код наредбом Енд Суб. Имајте на уму да се ове изјаве аутоматски додају када креирамо макро из менија, иако корисник може директно да упише код макроа овде и име подрутине ће се сматрати именом макроа.

рем 

Сви коментари у ЛибреОффице Басиц-у почињу кључном речи рем. Коментаром се сматра цео ред који почиње са рем. Други начин је употреба ' (један обрнути зарез) на почетку реда.

дим црс(8) као објекат дим ј као цео број дим проф као објекат дим и као цео број дим сх као објекат дим сх2 као објекат

Ово је декларација променљиве у ЛибреОффице Басиц-у. Општа синтакса је дим као . Да бисте декларисали низ, користите синтаксу сличну променљивој црс, где је 8 дужина низа.

сх = ТхисЦомпонент.Схеетс(0) црс(0) = сх.гетЦеллРангеБиПоситион(0, 0, 3, 0) ј = 1

ТхисЦомпонент односи се на актуелни документ. У овом случају то је Цалц Ворксхеет. Учитавамо Схеет са индексом 0, тј. први лист, у променљивој сх. Постоје и функције за учитавање листа помоћу имена.

Затим позивамо функцију гетЦеллРангеБиПоситион објекта сх и учитајте га у низ црс. Опсег ћелија се односи на групу ћелија на листу на основу положаја.

Имајте на уму да аргументи, 0, 0 (колона 0, ред 0) означавају почетну ћелију опсега, и 3, 0 (колона 3, ред 0) означавају крајњу ћелију опсега. Тако 0, 0, 3, 0 односи се на први (насловни) ред нашег узорка.

за и = 1 до 5 к = 1 проф = сх.ГетЦеллБиПоситион(3, и) рем Чувати цео ред у променљивој Ако проф.стринг = "Вритер" Тада црс(ј) = сх.гетЦеллРангеБиПоситион(0, и, 3, и ) ј = ј + 1 Крај Ако следећи и

Користимо а за изјава за петљу кроз редове. Тхе за блок се завршава са а следећи наредбу, која повећава променљиву и на крају сваке итерације.

Затим позивамо функцију ГетЦеллБиПоситион објекта сх. Пребацујемо параметре (3, и), односно са сваком итерацијом, објекат ћелије у колони 3 и реду и се преузима у променљивој проф.

Затим користимо ан Ако изјава за проверу да ли је вредност у ћелији проф „Вритер“. Ако јесте, поново позивамо функцију гетЦеллРангеБиПоситион, овог пута, са и уместо броја почетног и крајњег реда. Поново га чувамо у низу црс.

ТхисЦомпонент.Схеетс.инсертНевБиНаме("Вритерс", 1) сх2 = ТхисЦомпонент.Схеетс(1)

Прво креирамо нови лист са именом Писци, на позицији 1, што је 2. позиција, пошто индекс почиње од 0. Тада добијамо објекат овог новонасталог листа, тако да можемо да унесемо податке писаца у овај лист.

и = 0 Уради Док није ИсНулл(црс(и)) сх2ранге = сх2.гетЦеллРангеБиПоситион(0, и, 3, и) сх2ранге.сетДатаАрраи(црс(и).гетДатаАрраи) и = и + 1 Лооп

Тхе Уради Док наредба петље се користи када желимо да направимо петљу на основу услова, за разлику од петље у опсегу целобројних вредности, за шта се користи за као што је раније приказано. Ево, петља до црс(и) није нула.

Затим поново зовемо гетЦеллРангеБиПоситион на сличан начин као и раније да бисте добили објекат опсега у новом листу.

Коначно, позивамо две функције: гетДатаАрраи који враћа податке из црс(и), односно један ред података (о писцу) са првог листа; и ове податке уписујемо у опсег ћелија у новом листу користећи сетДатаАрраи.

На крају, сачувајте макро из Датотека » Сачувај све опција.

Да бисте покренули макро, идите на Алатке » Макрои » Покрени макро и изаберите свој макро из директоријума „Моји макрои“ у библиотеци селектора макроа. Кликните Трцати дугме након што изаберете име макроа.

Покретање горњег макроа на нашој табели са узорком даје следећи резултат.

Ово је начин за креирање макроа у ЛибреОффице-у. За више информација и опција погледајте званичну документацију.

? Живели!