Internet Windows Android
Kengaytirish

Libreoffice hisobidagi makrolar. LibreOffice Calc-da makroslarni qanday yoqish mumkin

Men Linuxdan taxminan 10 yildan beri foydalanaman. Taxminan 5 yil oldin men OpenOffice-dan foydalanishni boshladim va 3 yil oldin - LibreOffice. Ajablanarlisi va hatto sharmandaligim shundaki, menda Calc uchun yozilgan makrolar yo'q. Ammo Excel uchun bu vaqt ichida oddiy shakllar va formulalardan boshlab, ma'lumotni tayyorlashni avtomatlashtiradigan korxonalar uchun kuchli qo'shimchalar bilan yakunlangan ularning etarli qismi to'plangan. Bugun men asta-sekin paketni va uning imkoniyatlarini o'rganishni boshlashga va'da berdim, bunda men juda ko'p vaqt sarflayman.


Aksariyat odamlar uchun so'l tushunarsiz narsa va, ehtimol, keraksiz ixtirodir. Ular uchun bu nafaqat ishni optimallashtiradi, balki uni oshiradi. Bu fikr makroslardan foydalanish tamoyillarini tushunmaslikdan kelib chiqadi. Makroslar biror amalni ko'p marta bajarish kerak bo'lganda foydalaniladi. Ko'pincha, bu hujjatlarni qayta ishlashning bir xil turi (murakkab formatlash, tanlash), ba'zan to'ldirish shakllari, formulalar, grafikalar uchun hisob-kitoblar ... Shunga asoslanib va ​​bizning afzalliklarimizdan kelib chiqib, biz makrolarni saqlash usulini tanlaymiz:

  • global(yoki qo'shimcha) - dasturni ochganingizda har doim mavjud;
  • formulali- ma'lum bir shablonni ochishda mavjud;
  • mahalliy- faqat ma'lum bir hujjatda ishlaganda mavjud.

Ikkinchisi kamroq qo'llaniladi, asosan juda murakkab interaktiv hujjatlarda.
Bugungi kunda faqat o'z xodimlarida IT-mutaxassislari bo'lmagan kichik kompaniyalargina ofis to'plamlaridan foydalanadilar (LibreOffice yoki MS Office muhim emas), chunki ular "qutidan tashqarida". Ko'pgina hollarda, ofis to'plami faqat qo'shimchalar o'rnatiladigan bazadir va kompaniya xodimi ko'pincha u ketgunga qadar yoki boshqasiga o'tgunga qadar u uchun qancha kichik, ammo juda qulay narsalar qilinganligi haqida shubhalanmaydi. kompaniya.


Excelda makroslarni yozishni o'rganishni Record Macro vositasidan boshlash tavsiya etiladi. Haqiqatan ham, harakatlar qismlarini yozish uchun kelajakda foydalanish kerak bo'lgan tilning sirt darajasini va APIni tasavvur qilish kifoya. Bundan tashqari, ba'zida oddiy makrosni tezda yaratish uchun, go'yo uni "yozish orqali tashlab yuborasiz" va keyin uni kod muharririda esga olib, jilolaysiz.

LibreOffice 4.1 da Record Makro vositasini ulash

LibreOffice 4.1 da standart funksiya “ Makro yozib oling"Nogiron. Shuning uchun, birinchi navbatda, uni yoqish kerak: XizmatVariantlar (AsboblarVariantlar) LibreOffice guruhini kengaytiring va elementning eng pastki qismida " Kengaytirilgan imkoniyatlar» (« Murakkab") qarshi katakchani belgilang" Makros yozishni yoqish (cheklangan)» (« Makros yozishni yoqish (cheklangan)»).

Shundan so'ng, menyuingizda: Asboblar → Makroslar (Asboblar → Makroslar) menyu bandi " Makro yozib oling» (« Makro yozib oling»).

LibreOffice 4.1 da makro yozuvchisidan foydalanish

Asbobni ko'rsatish uchun " Makroslarni yozib olish»Mana oddiy misol:
1. Yangi Calc hujjatini ochamiz va uni diskda siz uchun qulay nom bilan saqlaymiz;
2. Yacheykani tanlang A1;
3. Makroyozuvni yoqaylik Asboblar → Makroslar → "Makrolarni yozib olish" (Asboblar → Makroslar → "Makrolarni yozib olish"). Bitta tugma bilan panel paydo bo'ladi " Yozishni tugatish» (« Yozishni to'xtating»);
5. Yacheykani tanlang B1 va bosing " Yozishni tugatish» (« Yozishni to'xtating»);
6. Quyidagi oyna ochiladi:

Biz faqat ushbu hujjatga kirish huquqiga ega makrosni yaratmoqdamiz, shuning uchun biz hujjat nomi bilan elementni ochamiz (menda article.ods bor, siz hujjatni saqlagan shu nomga ega bo'lasiz) va yagona mavjud kutubxonani tanlang. Standart... Unda hali hech qanday modul yo'q, shuning uchun uni yarataylik.
7. "tugmasini bosing. Modul yaratish» (« Yangi modul") Va ochilgan oynada modul nomini kiriting.

Odatiy bo'lib, modul chaqirilgan bo'sh makros bilan yaratilgan Asosiy... Maydonga kiramiz” Makro nomi» (« Makro nomi") Men kerakli ismni kiritdim" Asosiy") Va bosing" Yozing» (« Saqlash») Biz yozib olgan makrosni saqlash uchun. Mening holatimda, makro uchun bunday nom allaqachon mavjudligi haqida ogohlantirish paydo bo'ladi.

Makros yozib olinadi va agar biz hozir hujjatni saqlasak, u bilan makros saqlanadi. Bu shuni anglatadiki, biz har safar ushbu hujjatni ochganimizda, biz ushbu makrodan foydalanishimiz mumkin.

LibreOffice 4.1 makrosini ishga tushirish va tahrirlash

LibreOffice 4.1 da makrosni ishga tushirishning ikki yo'li mavjud.
Birinchidan, oynani oching " Makroni ishga tushirish»: Asboblar → Makroslar → "Makroni ishga tushirish"(Asboblar → Makroslar → "Makroni ishga tushirish ..."), kerakli makrosni tanlang va " Yugurish».

Taklif qabul qilindi. :)

Salom xakerlar!
Bugun men sizga makroslardan foydalanish haqida gapirib bermoqchiman LibreOffice.

Muqaddima
Har kuni uyda va ishda biz har qanday vazifani bajarish uchun ofis ilovalaridan foydalanamiz. Ko'pincha siz bitta ishda ixtisoslashganingiz va bir xil vazifalarni bajarishingiz mumkin: bir xil matnni kiriting, uni ko'p sonli tezkor tugmalar yordamida formatlang. Bularning barchasida siz o'zingizning ba'zi ishlaringizni avtomatlashtirish orqali qimmatli ish vaqtingizni tejashingiz mumkin.
Keyinchalik maqolada men sizga makroslardan foydalanish haqida gapirib beraman LibreOffice.

Makroslar nima va ular nima uchun?

Ibratli odatiy menyu yordamida yozib olinadigan muayyan harakatlar ketma-ketligidir. Ibratli yozuvni tanlaganingizda, bajargan amallaringiz avtomatik ravishda skript kodi sifatida saqlanadi. Va keyingi ishingizda, u allaqachon mustaqil ravishda amalga oshiriladi, dasturdagi harakatlaringizni takrorlaydi. Makro juda murakkab bo'lgani kabi oddiy bo'lishi ham mumkin - barchasi qanday natijaga erishishingiz kerakligiga bog'liq. Makroslarning asosiy mezonlari kuchli va bir vaqtning o'zida foydalanish uchun qulay bo'lishidir. LibreOffice makroslari aynan shu talablarga javob beradi. Keling, buni amalda sinab ko'raylik.

Paketdan foydalanish uchun LibreOffice, Sizda oldindan o'rnatilgan Linux, Windows yoki MacOS operatsion tizimi, shuningdek, LibreOffice paketi o'rnatilgan bo'lishi kerak (masalan, ushbu mavzuda tasvirlanganidek, uni ppa repozitoriylaridan o'rnatishingiz mumkin)

Makro boshqaruv

O'zimizning makrosimizni yaratishni boshlashdan oldin, biz makro boshqaruv vositasi bilan tanishishimiz kerak. Biz yo'l bo'ylab boramiz Asboblar - Makroslar - Makroslarni tartibga solish - LibreOffice asosiy makroslari(Asboblar - Makroslar - Makroslarni boshqarish - LibreOffice Basic Makroslar):

Oynaning chap ustunida biz o'rnatilgan standart makroslar ro'yxatini ko'rishimiz mumkin. Ulardan birini bosish orqali siz uni tahrirlashingiz yoki o'chirishingiz mumkin.
Oynaning asosiy vazifasi- kerakli makrosni tanlang, unga asboblar panelidagi tugmani belgilang yoki uni voqea bilan bog'lang. Makrosga tugmani belgilash sizga tez-tez foydalanadigan tugmachalarni tezda bajarish imkonini beradi.

Shuni ta'kidlashni istardimki, avtomatik rejimda (yozuv) makros yaratish kamida makroslarni yozish uchun tilni ozgina bilishni talab qiladi, chunki ba'zida biz uni tahrirlashimiz kerak. Makrosning qanday ko'rinishini ko'rish uchun bizga kerak bo'lgan makrosni tanlang va tugmasini bosing Tahrirlash(Tahrirlash). Quyida makrosning manba kodida qanday ko'rinishiga misol keltirilgan:

Keling, oddiy misolni olaylik. Hujjatga bizda allaqachon matn kiritilgan va biz unga sarlavha qo'yishimiz kerak, chunki bizning matnimiz biznes yozishmalarida qo'llaniladi.
Bizning kelajakdagi makromiz quyidagilarga qodir bo'lishi kerak:
- matnni sahifaning yuqori markaziga joylashtiring;
- sarlavha sifatida foydalaniladigan matnni kiriting.
Makrosni yaratganimizdan so'ng, biz unga asboblar panelidagi tugmachani tayinlaymiz. Shundan so'ng, hujjatga sarlavha kiritish uchun sichqonchani bir marta bosish kifoya qiladi.
Keling, qadamlar ketma-ketligiga amal qilaylik.

1-qadam.
Matnli hujjatni oching. Keling, davom etaylik Asboblar - Makroslar - Makrosni yozib olish... Bitta "End Macro" tugmasi bilan kichik "Record Macro" oynasi paydo bo'ladi ( Yozishni to'xtating):

2-qadam.
Keling, matn uchun sarlavha yarataylik. Keling, tugmani bosamiz "Markazni tekislash"("Markazlashtirilgan"), shuning uchun bizning kelajakdagi matnimiz hujjatning markazida joylashgan. Endi biz sarlavhaning matnini yozamiz. Buning uchun turli formatlarni o'rnatmasligingiz kerak (shrift yoki qalin / kursiv / tagiga chizilgan), chunki makro bunday harakatlarni eslay olmaydi.

3-qadam.
Sarlavha yaratish tugallangandan so'ng, "Makroni yozib olish" oynasidagi "Makroni tugatish" tugmasini bosing. Makro Organizer oynasi darhol paydo bo'ladi. Yangi makrosga nom bering (masalan, PostHead). Endi siz uni xohlagan joyga saqlashingiz mumkin (masalan, "papka" Mening makro").

4-qadam.
Endi biz faqat makro uchun asboblar panelidagi tugmani qo'shishimiz kerak Post boshi... Bu jarayon birinchi qarashda ko'rinadigan darajada oddiy emas.
Biz ochamiz LibreOffice asosiy makroslari, tugmasini bosing " Tayinlash"(" Assign "). Quyidagi oyna paydo bo'ladi Moslashtiring, unda biz tabga o'tishimiz kerak Asboblar paneli va "Asboblar paneli" maydoni "Standart" ekanligiga ishonch hosil qiling ( Standart) .

Ushbu oynada "Qo'shish" tugmasini bosing ( Qo'shish). Boshqa oyna paydo bo'ladi - "Buyruqlar qo'shish" ( Buyruqlar qo'shing).
Chap oynaning ro'yxatida "Kategoriyalar" ( Turkum) topamiz" LibreOffice makrolari"(ro'yxatning eng quyi qismida). Uni oching va bizning makrosimizga o'ting. Uni topishimiz bilanoq, oxirgi va eng oddiy qadamni bajarish qoladi. Antetli qog'oz makrosini sichqoncha bilan asboblar panelidagi joyga torting. biz buni ko'rishni xohlaymiz.
Hammasi vazifani bajardi.
Endi biz qilishimiz kerak bo'lgan yagona narsa tugmani ishlatishdir Post boshi, biz panelga qo'shdik. Masalan, yangi hujjatni oching va tugmani bosing Post boshi... Bizning makrosimiz biz unga "tayinlagan" matn bilan sarlavha yaratadi va uni hujjatning yuqori qismiga, aynan markazga joylashtiradi.
Bu qulay emasmi?

Natija
Albatta, mening misolimda biz juda oddiy makro yaratdik. Lekin yuqoridagi vositalar yordamida siz juda murakkab makroslarni ham yaratishingiz mumkin. Va nafaqat ichida Yozuvchi, balki paketning boshqa barcha ilovalarida ham LibreOffice(Elektron jadval, taqdimotlar va boshqalar). Endi siz makroslarni qanday yaratishni bilganingizdan so'ng, ishingizni osonlashtirish uchun o'zingizni osongina yaratishingiz mumkin.
Ushbu maqolaning maqsadi so'l yozish vositasi bilan ishlash asoslarini o'rganishdir.

Ba'zan siz matn bilan ishlashingiz yoki matnni har qanday murakkab usulda qayta ishlashingiz kerak va interfeys tomonidan taqdim etilgan odatiy vositalar buning uchun etarli emas. Bundan tashqari, ba'zida bir xil muntazam harakatlar ketma-ketligini bajarish kerak bo'ladi, bu ba'zan juda ko'p vaqtni oladi, lekin men bu harakatlar ketma-ketligini bitta tugmachani bosish uchun qisqartirishni xohlayman. Writer maxsus makroslarni yaratishga imkon beradi, ular aslida dasturlash tilida yozilgan matnni qayta ishlash protseduralari, bizning holatlarimizda Basic tili dasturlash tili vazifasini bajaradi. Shu bilan birga, yuqori darajadagi dasturlash tillariga xos bo'lgan barcha standart operatorlar to'plamiga ega bo'lgan holda, Writer matn muharriri ob'ektlariga, ochiq hujjatlarga, hujjatlarni ochish funktsiyalariga, ushbu hujjatning barcha ob'ektlariga, shu jumladan rasmlarga, paragraflarga kirish mumkin. , sarlavhalar va altbilgilar, tanlangan matn, ro'yxatlar, so'zlar, harflar, shriftlar va boshqalar.

2.1. Ob'ektlar va sinflar.

Ob'ekt nima. Haqiqiy dunyo nuqtai nazaridan ob'ekt - bu haqiqiy dunyoda mavjud bo'lgan va xususiyatlar va xatti-harakatlarga ega bo'lgan moddiy narsa, ko'pincha ob'ektlar ba'zi umumiy xususiyatlarga ega, buning natijasida biz har bir ob'ektni ob'ektlarning qandaydir sinfiga kiritamiz. Masalan - avtomobil, avtomobillarning turli xil aniq amalga oshirilishi va ob'ektlari mavjud, ammo umumiy toifa - bu to'rt g'ildirakli, haydashga qodir va haydovchi tomonidan boshqariladigan avtomobil. Xuddi shu narsani matn yoki hujjat haqida ham aytish mumkin, hujjat matnli ob'ektni o'z ichiga olgan ob'ekt, matn ob'ekti esa so'zlar, paragraflar, harflarni o'z ichiga oladi, matn tahrirlanadi, o'zgartiriladi, ko'rsatiladi, hujjat yaratiladi va saqlanadi. Bu barcha amallarni bu obyektlar bilan muharrir funksiyalaridan foydalanib bajaramiz, lekin bu funksiyalarni algoritmik til yordamida chaqirishimiz mumkin.

Agar siz allaqachon dasturlash tillari bilan ishlagan bo'lsangiz va dasturlarni yozgan bo'lsangiz, bilasizki, har qanday dasturlash tilida siz ko'rsatmalar yozishingiz mumkin bo'lgan operatorlar yoki ko'rsatmalar to'plami yoki protsessor tushunadigan va bajarishi mumkin bo'lgan dastur mavjud. Siz deyarli har qanday murakkablikdagi algoritmni yozishingiz mumkin bo'lgan standart operatorlar to'plami mavjud - bu filial, tsikl, operatorni bajarishning chiziqli ketma-ketligi, arifmetik operatsiyalar va o'zgaruvchilarga kirish va ba'zi qiymatlarni yozish qobiliyati yoki ulardagi mantiqiy yoki arifmetik ifodalarning natijalari. Odatda yuqori darajadagi tillarda ular mashina tillariga xos bo'lgan xotira bilan murakkab ishlashdan qochishga harakat qiladilar, ma'lum bir - o'zgaruvchan - ramziy ketma-ketlikka qiymat berish imkonini beradigan standart belgilash operatsiyasi joriy etiladi. Taxminan aytganda, iboralarda ushbu belgilar ketma-ketligidan foydalanib, siz ushbu o'zgaruvchida bo'lgan narsalar bilan qutidagi kabi ishlaysiz. Siz topshiriq operatsiyasini quyidagicha tasvirlashingiz mumkin: St1 nomi bilan stakanga biz Cr1 krujkadan sut quyamiz va aytamizki, menga Cr1 dan St1 ga sut quying. Shunday qilib, siz Cr1 tarkibidagi narsalar bilan quyiladi. O'zgaruvchi bilan ham xuddi shunday. Aytaylik, Val1 = 20; Val2 = 30; Val3 = Val1 + Val2; u holda Val3 qiymati 50 ni o'z ichiga oladi. Siz o'zgaruvchi qatordagi hamma narsani emas, faqat ma'lum turdagi ma'lumotlarni o'z ichiga olishi mumkinligini bilasiz (garchi dasturni bajarish jarayonida o'zgaruvchining turini aniqlash mumkin bo'lsa-da, ma'lumotlar turining maxsus varianti mavjud). . Axir, biz nomlarni (satrlarni) va raqamlarni va ob'ektlarni saqlashimiz mumkin. Shunday qilib, har bir o'zgaruvchiga ma'lumotlar turi yoki domen yoki u qabul qilishi mumkin bo'lgan qiymatlar doirasi tayinlanadi. Odatda dasturlash tillarida bular butun son turlari, real, satr, belgi, mantiqiy, sanab o'tilgan, to'plam, kompleks sonlar, yozuv turi yoki tuzilmalardir. Shunday qilib, o'zgaruvchan ob'ekt nima, bu murakkab ma'lumotlar tuzilmasi bo'lgan ob'ektga havolaning bir turi bo'lib, u boshqa narsalar qatorida ushbu ma'lumotlar va ob'ekt bilan ishlash usullarini o'z ichiga olishi, shuningdek, ma'lumotlarni himoya qilishi va cheklashi yoki ruxsat berishi mumkin. unga kirish.

Ob'ekt o'zgaruvchisi - bu ob'ektda bajariladigan boshqa ob'ektlar, xususiyatlar va harakatlarni o'z ichiga olgan o'zgaruvchi, ob'ekt - ma'lum bir sinfning o'ziga xos amalga oshirilishi (klass - bir xil xususiyatlarga ega bo'lgan ob'ektlarning ma'lum bir to'plamining tavsifi). Odatda, murakkab ma'lumotlar turlarining (masalan, sinflar) xossalari va funksiyalariga kirish ob'ekt o'zgaruvchisining nomini, keyin esa ushbu ob'ektning funksiyasi va yoki xususiyati nomiga nuqta qo'yish orqali amalga oshiriladi.

2.2. Basic tilidagi o'zgaruvchilar va ob'ektlar

O'zgaruvchini e'lon qilish uchun dim kalit so'zini, so'ngra vergul bilan ajratilgan o'zgaruvchilar ro'yxatini, as so'zini va o'zgaruvchining turini belgilang.

Dim a, b integer sifatida - butun son tipidagi o'zgaruvchini e'lon qilish. Dim s as string - satr tipidagi o'zgaruvchini e'lon qilish.

Dim mass () butun son sifatida - butun son tipidagi dinamik bir o'lchovli massivni e'lon qilish. Redim massasi (100) - massiv uzunligini o'zgartiring va uni 100 ga qo'ying.

com.sun.star.frame.Desktop sifatida xira stol UNO birlashgan tarmoq modelining ish stoli tipidagi o'zgaruvchidir, bu o'zgaruvchi Ish stoli tipidagi ob'ektlarga murojaat qilishi mumkin.

Basic tilida siz ob'ektlarga havola bo'lgan o'zgaruvchilarga kirishingiz mumkin, bular oyna ekranida ko'rsatiladigan matn ob'ektlari, paragraflar, jadvallar bo'lishi mumkin, ular ushbu ob'ektlar bilan ishlash uchun xususiyatlar va usullar to'plamiga ega. Ob'ekt modeli har qanday bo'lishi mumkin, shuningdek uni amalga oshirish, masalan, Microsoft Office paketi o'zining ob'ekt modeliga ega, LibreOffice yoki OpenOffice paketining o'ziga xos modeli bor, shuning uchun ushbu turli xil paketlardagi ob'ektlar va ushbu ob'ektlar bilan o'zaro ta'sir qilish usullari. har xil.

2.3. Asosiy operatorlar

Loop operatori uchun.

Indeks uchun = n1 dan n2 gacha Rem halqa tanasi

Indeks o'zgaruvchisi n1 dan n2 gacha bo'lgan qiymatlar bo'ylab s (s ga o'sish) bilan ishlaydi, bu holda s o'zgaruvchi yoki butun son tipidagi doimiy bo'lishi mumkin, kvadrat qavslar konstruktsiyaning ixtiyoriy ekanligini ko'rsatadi, agar u ko'rsatilmagan bo'lsa. keyin qadam 1.

Masalan, val = 0

Xyz = 4 dan 50 gacha bo'lgan bosqich uchun 4 val = val + xyz

Algoritm 4 dan 50 gacha bo'lgan qiymatlar yig'indisini 4 qadam bilan hisoblab chiqadi, ya'ni 4, 8, 12, 16 ...

val o'zgaruvchisiga 48 gacha. val1 = 0

Aval uchun = 1 dan 50 gacha val1 = val1 + aval keyingi aval

Bunday holda, 1 dan 50 gacha bo'lgan butun sonlar yig'indisi hisoblanadi.

while tsikli bayonoti shart bajarilganda bajaring. Davra ichidagi gaplar shart bajarilguncha takrorlanadi.

Vaholanki<условие>Wend operatorlari

Misol: while i

i o‘zgaruvchisi N dan kichik bo‘lganda sikl bajariladi. Shartli If buyrug‘i,

agar<условие>keyin

<последовательность операторов если условие выполняется>agar tugaydi

Misol: agar I 100 dan kichik bo'lsa (agar shart bajarilsa), I ni 1 ga oshiring, aks holda 1 ga kamaytiring.

Agar men<100 then i=i+1

Aks holda i = i-1 oxiri agar

2.4. Jarayonlar va funktsiyalar.

Funktsiyalar va protseduralar - bu asosiy dastur yoki pastki dasturda chaqirilishi mumkin bo'lgan alohida bloklar bo'lib, odatda funktsiya yoki protsedura dasturda uning nomi va unga berilgan parametrlarni ko'rsatish orqali chaqiriladi, funktsiya operatorlari bajarilgandan so'ng, boshqaruv qaytariladi. uni chaqirgan dastur yoki pastki dasturga o'ting va funktsiya yoki protseduradan keyingi operatorlarning bajarilishi boshlanadi. Shubhasiz, protseduralar va funktsiyalarning maqsadi ma'lum bir mantiqiy tugallangan harakatni bajaradigan tez-tez takrorlanadigan operatsiyalar uchun har safar bir xil kodni yozish emas. Shu bilan birga, funksiyalar va protseduralar ichida o'z mahalliy o'zgaruvchilaringizdan foydalanish mumkin, ular boshqa protsedura va funktsiyalardagi va asosiy dasturdagi o'zgaruvchilar bilan bir xil nomga ega bo'lishi mumkin. Shu bilan birga, protseduradan tashqari biz funktsiyaning mahalliy o'zgaruvchilarini o'zgartira olmaymiz. Protseduralar va funktsiyalardan odatiy foydalanish shundan iboratki, biz funktsiyaga ba'zi qiymatlarni o'tkazamiz, ular asosida bu funktsiya bir qator harakatlarni bajaradi va qandaydir natijalarni hisoblaydi. Protseduralar va funktsiyalar o'rtasidagi asosiy farq shundaki, funktsiya nomi qaysidir turdagi qaytaruvchi ma'lumotlar bilan bog'langan, taxminan aytganda, funktsiya ifodalarda, masalan, arifmetik yoki mantiqiy, shartli bayonotlar va tsikllarda ishlatilishi mumkin. Jarayon har qanday ifodadan tashqarida chaqiriladi.

Funktsiya tashqi dasturdan funktsiyaga haqiqiy parametr sifatida berilgan ikkita raqamning yig'indisini qaytaradi

Funktsiya yig'indisi (a, b butun son sifatida) Sum = a + b butun son sifatida

Dasturda summa funksiyasidan foydalanish. Xni butun son sifatida qisqartiring

x = 2 x = x + yig'indisi (x, 4) * 2

Ikki raqamni qo'shish imkonini beruvchi protseduraga misol, qiymat rasmiy parametrda qaytariladi, protsedura chaqirilganda u doimiy bo'lmasligi kerak, lekin butun son tipidagi o'zgaruvchi bo'lishi kerak.

Kichik yig'indi (a, b, c butun son sifatida)

Dim c butun son sifatida Chaqiruv summasi (2,2, c)

2.5. LibreOffice-da makro yaratish

LibreOffice'da makros yaratish uchun Xizmat + Makroslar + Makroslarni boshqarish + LibreOffice Basic (Asboblar + Makroslar + Makroslarni tartibga solish) ni tanlang. Bu quyidagi rasmda ko'rsatilgan oynani ko'rsatadi (19-rasm). Makros hujjatning o'zida saqlanishi uchun siz o'zingizning hujjatingizni tanlashingiz, "standart" standart modullar to'plamini tanlashingiz va "yaratish" tugmasini bosishingiz kerak, keyin modul nomini kiritishingiz kerak. Modulni yaratgandan so'ng, uni tanlashingiz mumkin, o'ng tarafdagi oynada Asosiy makrosni tanlang va Tahrirlash tugmasini bosing. Yoki modulni (Module1) yaratgandan so'ng, Makros nomi maydoniga makrosga yangi nom yozing va yaratish tugmasini bosing (20-rasm).

19-rasm - Makroslarni yaratish va tahrirlash oynasi

20-rasm - MyMainMacros yangi makrosini yaratish misoli

Makrosni yaratish va tahrirlash natijasida BASIC muharriri oynasi paydo bo'ladi, rasmda ikkita makrosli misol ko'rsatilgan, albatta, ular ko'proq bo'lishi mumkin va ular kiritish parametrlariga ega bo'lishi mumkin.

21-rasm - Asosiy muharrir va ikkita makros

LibreOffice-da, yuqorida aytib o'tilganidek, ob'ekt modeli Microsoft Office-dan bir oz farq qiladi, LibreOffice Basic-da UNO birlashtirilgan tarmoq ob'ekti modeli ishlatiladi. Quyida har bir paragrafning shrift hajmini oshiradigan openoffice makrosiga misol keltirilgan.

Hujjatni ob'ekt sifatida xiralashtirish

Ob'ekt sifatida Dim Enum

Xira matn elementi ob'ekt sifatida

" StarDesktop - makrosdan foydalanish mumkin bo'lgan asosiy ob'ekt

" ro'yxatga olish ob'ektini yaratish

Enum = Doc.Text.createEnumeration

" Enum.hasMoreElements TextElement = Enum.nextElement esa barcha matn elementlari bo'ylab aylanish.

" joriy blokning jadval ekanligini tekshirish

Agar TextElement.supportsService ("com.sun.star.text.TextTable") bo'lsa, u holda

MsgBox "Joriy blokda jadval mavjud"

Men har qanday materiallarni ikki formatda nashr etaman - odt va pdf... Ikkinchisi tarqatish uchun qulaydir. ga eksport qiling pdf dialog oynasi orqali LibreOffice standart vositalari orqali amalga oshiriladi. Fayl -> PDF formatiga eksport qilish". Qo'llanmani o'qish va undagi xatolarni tuzatish jarayonida siz ko'pincha hujjatni qayta saqlashingiz kerak bo'ladi. Hujjatni har safar qo'lda eksport qilmaslik uchun, saqlash paytida bu avtomatik ravishda sodir bo'lsa yaxshi bo'lardi, deb o'yladim odf fayl. Va bu holda LibreOffice makro tilini bilish mutlaqo kerak emas.

Vazifa so'l yozish funksiyasi yordamida hal qilinadi. U sukut bo'yicha mavjud emas. Uni yoqish uchun " Asboblar -> Variantlar"bo'limda" LibreOffice"Elementni tanlang" Kengaytirilgan imkoniyatlar"Va yonidagi katakchani belgilang" Makroyozishni yoqish».

LibreOffice-ni qayta ishga tushirgandan so'ng " Asboblar → Makroslar"Element" Makro yozib oling».

tugmasini bosgandan so'ng Asboblar -> Makroslar -> Makrosni yozib olish"Tugmali oyna" Yozishni tugatish».

Xulosa oddiy:

  1. Makros yozishni yoqing
  2. Yozish jarayonida kerakli amalni bajaring. Mening holimda, men PDF-ga eksportni "" orqali amalga oshirdim. Fayl -> PDF formatiga eksport qilish»
  3. "ni bosing Yozishni tugatish»
Hammasi, PDF makrosiga eksport qilish yozib olindi, uni saqlashingiz kifoya.

Qulaylik uchun men modul yaratdim " PDF_ga eksport qilish" kutubxonada " Standart"Va mening makrosimni ushbu modulda saqladim.

Endi faqat makroni ishga tushirishni ma'lum bir hodisaga tayinlash qoladi. Bizning holatda, hujjatni saqlash uchun. Biz boramiz" Xizmat -> Sozlamalar"Uchun" Ishlanmalar».

Diqqat! Makros LibreOffice 4.4.3.2 va Windows XP da yozilgan.

LibreOffice Calc-ni ishga tushiring. Asboblar -> Makroslar -> Makroslarni boshqarish -> LibreOffice Basic-ni tanlang


Libre Office BASIC Makroslar oynasida "Makro nomi" maydoniga "Asosiy" deb yozing. "Makrodan" maydonida "Mening makroslarim" - "Standart" bandini tanlang va "Yaratish" tugmasini bosing. 1-rasmga qarang.

1-rasm. LibreOffice asosiy makroslar oynasi


Yangi modul oynasida "Module1" nomini o'rnating va "OK" tugmasini bosing. 2-rasmga qarang.

Rasm 2. Yangi modul yaratish

3-rasm. LibreOffice asosiy makro muharriri

Main asosiy protsedurasi bilan Module1 modulini yaratdik. Muloqot oynasini yaratish uchun LibreOffice Basic makro muharririda Asboblar -> Makroslar -> Dialoglarni boshqarish ... menyu bandini tanlang.

"Dialoglar" yorlig'ini tanlang. "Muloqot" bo'limida "Mening dialoglarim" -> "Standart" ni tanlang va "Yaratish" tugmasini bosing. 4-rasmga qarang.

Rasm 4. Makros muloqot oynasini yaratish

Yangi dialog oynasida "Dialog1" nomini o'rnating va "OK" tugmasini bosing. 5-rasmga qarang. Keyin LibreOffice Basic Makro boshqaruvi oynasining “Yopish” tugmasi.

Rasm 5. Yangi dialogni yaratish

Keyin, LibreOffice Basic makros muharriri oynasida “Dialog1” nomli yangi yaratilgan dialog oynamizga ikki marta bosing, 6-rasmdagi 1-raqamga qarang. Shundan so‘ng vizual dialog muharriri ochiladi, 6-rasmdagi 2-raqamga qarang.

6-rasm. LibreOffice asosiy dialog muharriri

Endi yorliq deb nomlangan vizual elementni va vizual element tugmachasini muloqot oynamizga torting. Vizual tasvirlarni vizual paneldan tortib olish mumkin, 6-rasmdagi 3-raqamga qarang.

Agar siz Label vizual elementini tanlasangiz, ushbu element uchun xususiyatlar to'plami ochiladi. Ushbu xususiyatlar orqali elementni sozlashingiz mumkin. LblNow elementiga nom bering va matnni bo'sh qoldiring. Tugma elementi uchun biz OKButton deb nom beramiz va matn OK bo'ladi. 7-rasmdagi 1,2,3 raqamlariga qarang.

Rasm 7. LibreOffice Basic dialog muharririda vizual elementlarni qo'shish

Yuqorida yozganimdek, Main asosiy protsedurali Module1 moduli yaratilgan (8-rasmga qarang), lekin u hali tugallanmagan.

Rasm 8. Makrosning manba kodini qo'shish


Asosiy protsedura asosiy protsedura bo'lib, unda biz Dialog1 nomli dialog oynasini yuklaymiz, bular quyidagi kod qatorlari:

DialogLibraries.LoadLibrary ("Standart")
Dlg = CreateUnoDialog (DialogLibraries.Standard.Dialog1)

Biz joriy sana va vaqt bilan qator hosil qilamiz, bu quyidagi kod qatorlari:

Dim strNow String sifatida
strNow = Formatlash (Hozir (), "yyyy-aa-dd")
strNow = strNow + Format (Vaqt (), "hh: mm")

Vizual elementga sana va vaqt ko'rsatilgan qatorni lblNow nomli yorliq bilan belgilaymiz, bular quyidagi kod qatorlari:

Dim clblNow Ob'ekt sifatida
clblNow = Dlg.getControl ("lblNow")
clblNow.Text = strNow

Main protsedurasidagi oxirgi kod qatori bilan Dialog1 nomli dialog oynasini ishga tushiramiz:

Dlg.Execute ()

Yana bitta protsedura bor, uning nomi OKButton_execute, bu hodisa protsedurasi, u OKButton nomli tugmani bosish vaqtida bajariladi va Dialog1 nomli dialog oynasini yopadi, bu quyidagi kod qatori:

Dlg.endExecute ()

Endi OKButton_execute nomli protsedurani OKButton nomli tugmachaga "Sichqoncha tugmachasini chiqarish" hodisasi sifatida belgilang. Buning uchun Dialog1 dialog oynasining vizual muharririni oching, 9-rasmdagi 1-raqamga qarang. OKBtuton nomli tugmani tanlang va "Voqealar" yorlig'iga o'ting, 9-rasmdagi 2-raqamga qarang. "Sichqoncha tugmasini qo'yib yuborish" hodisasida , uchta nuqtali tugmani bosish orqali OKButton_execute nomli protsedurani belgilang, 9-rasmdagi 3-raqamga qarang.

Rasm 9. OK tugmasiga hodisani belgilash

Biz makrosni ishga tushirish uchun hamma narsani qildik. Birinchidan, makro biz uchun nima qilishini ko'rib chiqaylik. 10-rasmdagi 2 raqami ostida siz joriy sana va vaqt ko'rsatilgan yaratilgan dialog oynasini ko'rasiz. Agar siz OK tugmasini bossangiz, dialog oynasi yopiladi.

1. LibreOffice Basic makros muharriridan makrosni ishga tushiring.LibreOffice Basic makros muharririda bizning kodimizni oching va uni F5 tugmachasini yoki makroni ishga tushirish tugmasini bosish orqali bajaring, 10-rasmdagi 1-raqamga qarang.

2. "Makroni tanlash" dialog oynasidan makrosni ishga tushirish, 11-rasmdagi 1-raqamga qarang. Muloqot oynasida biz makrosimizni tanlashimiz va "Ishga tushirish" tugmasini bosishimiz kerak, 11-rasmdagi 2-raqamga qarang.

Rasm 11. “Makroni tanlash” muloqot oynasidan makrosni ishga tushirish

3. LibreOffice Calc yoki LibreOffice Writer-dagi menyular va pastki menyulardan makrosni ishga tushiring, 12-rasmdagi 0 raqamiga qarang. Menyular va pastki menyularni yaratish uchun menyuning “Asboblar” bandini va “Tanlovlar” kichik menyusini tanlang, rasmdagi 1 va 2-raqamlarga qarang. 12. "Menyu" yorlig'idagi "Sozlamalar" dialog oynasida "Yangi ..." tugmasini bosing, menyumiz nomini kiriting (masalan, "Makrolar"), 12-rasmdagi 3-raqamga qarang. Yaratish uchun "Makrolar" menyumizning pastki menyusida "Qo'shish ..." tugmasini bosing (12-rasmdagi 4-raqamga qarang).

12-rasm. LibreOffice Calc yoki LibreOffice Writer-dagi menyular va pastki menyulardan makrosni ishga tushirish

Keyin, "Buyruqlarni qo'shish" dialog oynasida, bizning pastki menyu tanlanganida bajariladigan buyruqni tanlang (13-rasmdagi 1 va 2 raqamlarga qarang), ya'ni. Biz Main nomli makrosimizni tanlaymiz.

Shakl 13. Pastki menyuga buyruq qo'shish

"Menyu" yorlig'ining "Sozlamalar" muloqot oynasidagi "O'zgartirish" tugmachasining "Nomini o'zgartirish ..." menyu bandini tanlab, bizning pastki menyu nomini o'zgartiring (14-rasmdagi 1,2,3,4 raqamlarga qarang). "Sana oynasi makrosi" pastki menyusiga nom bering.

14-rasm. Kichik menyu nomini o'zgartirish

4. Klaviatura yorliqlarini bosish orqali LibreOffice Calc yoki LibreOffice Writer-da makrosni ishga tushirish. Buni amalga oshirish uchun "Sozlamalar" muloqot oynasini oching va "Klaviatura" yorlig'ini tanlang (15-rasmdagi 1-raqamga qarang). Keyin biz "Asosiy" deb nomlangan makrosimiz bo'lgan buyruqni tanlaymiz (15-rasmdagi 2-raqamga qarang). Keyin biz bepul tugmalar birikmasini tanlaymiz va ularni bizning buyruqimizga tayinlaymiz, ya'ni. Main nomli makros (15-rasmdagi 3,4,5 raqamlarga qarang).

15-rasm. Makrosni ishga tushirish uchun yorliq tugmachasini belgilash

5. Asboblar panelidagi tugmani bosish orqali LibreOffice Calc yoki LibreOffice Writer da makrosni ishga tushirish (16-rasmdagi 4-raqamga qarang). Asboblar panelida tugma yaratish uchun “Xizmat” menyu bandini va “Sozlamalar” pastki menyusini tanlang, 16-rasmdagi 1-raqamga qarang. “Sozlamalar” muloqot oynasidagi “Asboblar paneli” yorlig‘ida “Yangi ..” tugmasini bosing. ." tugmasi, asboblar paneli nomini kiriting (masalan, "Makro panel"), 16-rasmning 2 raqamiga qarang. Uskunalar panelida tugma yaratish uchun "Qo'shish ..." tugmasini bosing (3-rasmning 3 raqamiga qarang). 16).

16-rasm. Asboblar panelidan makrosni ishga tushirish

Keyin, "Buyruqlarni qo'shish" dialog oynasida, bizning asboblar panelidagi tugmachamizni bosganingizda bajariladigan buyruqni tanlang (13-rasmdagi 1 va 2 raqamlarga qarang), ya'ni. Biz Main nomli makrosimizni tanlaymiz.

"Asboblar paneli" yorlig'ining "Options" dialog oynasidagi "O'zgartirish" tugmachasining "O'zgartirish ..." menyu bandini tanlab, asboblar panelidagi tugmachamiz nomini o'zgartiring (17-rasmdagi 1,2,3,4 raqamlarga qarang). . Tugmachani "Sana bilan makro oyna" deb nomlang.

17-rasm. Asboblar paneli tugmasi nomini o'zgartirish