OpenOffice.org Calc pod drobnohľadom (11) - Ukážka makra

Menu

PORTÁL

O Linuxe

Eshop

Anketa

Používate twitter? Ak áno, ktorého klienta používate?

(150 ~ 91%)
(0 ~ 0%)
(1 ~ 1%)
(0 ~ 0%)
(13 ~ 8%)
Spolu: 164
Komentárov: 17 Zobraziť ankety

PODPORUJEME

SKOSI.org

LinuxEXPO

ODPORÚČAME

PODPORTE NÁS

Ak sa vám táto stránka páči, môžete nás podporiť tak, že si na vaše stránky umiestnite tento banner.
Banner LinuxOS.sk

Štýl

Vyhľadávanie

Databáza znalostí

Prihlásenie




Registrácia
Neprihlásený

Správy

Archív správ
19.03 12:53 |  dodoedo
Po prvý krát v dejinách projektu Debian GNU/Linux na čelo projektu kandiduje žena. Pani Margarita Manterola je z Argentíny, kde na univerzite vyučuje programovanie a je vývojárkou softvéru, pričom používa prevážne programovací jazyk Python. Nový líder projektu bude známy v apríli tohoto roku.
Komentárov: 6
19.03 12:44 |  dodoedo
Open-source projekt opentaps uvoľnil v týchto dňoch novú verziu softvérového balíka podnikových aplikácií pre systémy Open Source ERP + CRM - opentaps 1.4 (stiahnutie aplikačných balíkov).
Pridať komentár
19.03 09:51 |  dodoedo
V Belgicku existuje Ministerstvo na zjednodušenie administratívy (!). Jeho šéf, minister Vincent Van Quickenborne sa vyjadril, v otváracej reči na seminári o slobodnom softvéri pre orgány Verejnej správy o slobodnom softvéri (open-source) ako o účinnom nástroji na zastavenie monopolizácie, voľnom zdielaní vedomostí a zvyšovaní sociálnej inovácie. A samozrejme, prudko znižuje finančné náklady na softvér, čím sa stáva príkladom aj pre Slovensko.
Komentárov: 7
18.03 11:58 |  lesny_skriatok
V dňoch 23. - 24. apríla 2010 sa uskutoční konferencia Openmobility v Zlíne (ČR) venovaná otvoreným mobilným platformám a technológiám. Pre širokú verejnosť je určená sobota 24. apríla 2010. Konferenciu organizuje česká komunita Openmoko v spolupráci FAI UTB. Viac na mobility.openmoko.cz.
Pridať komentár
18.03 11:34 |  dodoedo
Open-source projekt Parrot ohlásil vydanie najnovšej verzie procesového virtuálneho stroja Parrot 2.2.0. Virtuálny stroj Parrot používa JIT kompiláciu a slúži na čo najefektívnejšie kompilovanie a vykonanie bytekódu pre dynamické jazyky. Stiahnutie balíčkov a zdrojového kódu.
Pridať komentár
17.03 12:34 |  dodoedo
Open-source projekt MonoDroid od spoločnosti Novell umožní vývojárom prispôsobenie .NET aplikácií pre fungovanie v Google Android mobiloch. Projekt MonoDroid oznámil prvú ukážku takéhoto kódu na koniec tohto leta.
Pridať komentár
17.03 12:12 |  dodoedo
Nedávne zverejnenie vývoja cenzurovaného severokórejského Linuxu Red Star a vytvorenie čínskeho superpočítača Dawning 6000 z domácich procesorov Loongson (MIPS) pod Linuxom, podľa článku na linuxinsider.com spustilo prezentáciu názorov, v ktorých sa dokonca špekuluje o krajinách, využívajúcich FOSS/Open Source (Linux) ako o krajinách, ktoré sú nepriateľom štátu (USA). Napríklad v správe Medzinárodnej aliancie duševného vlastníctva (IIPA) sú dané obavy, že otvorenosť zdrojového kódu umožňuje takýmto totalitným režimom, bez väčších výdavkov okamžité použitie vyspelých technológií, čomu treba venovať zvýšenú ostrahu. Uvádza príklad vytvorenia čínskych procesorov Loongson, umožňujúcich obídenie Intel/AMD patentov. Loongson totiž používa MIPS-architektúru, ktorú Linux využíva dokonale a od základu.
Pridať komentár
17.03 08:20 |  Andrej Eliáš
Nedávno bol spustený podporný web k projektu ovládačov na zariadenia Flarion pre Linux (PCMCIA aj USB). Na webe nájdete návody na kompiláciu a inštaláciu a taktiež novinku: applet pre GNOME v ktorom vidíte stav pripojenia, silu signálu a podobne. Pre spätnú väzbu od používateľov je k dispozícii fórum s overovaním cez google account alebo OpenID.
Pridať komentár
15.03 09:14 |  eMDi
V dňoch 1.7. 2010 a 4.7.2010 sa bude konať v Žiline konferencia "Otvorený softvér vo vzdelávaní, výskume a v IT riešeniach". Viac informácií získate na stránkach SOS pre školy.
Pridať komentár
14.03 20:55 |  csantibo
Nová beta-verzia linuxovej distribúcie PCLinuxOS-2010.beta1 s linuxovým jadrom 2.6.32.8 a s grafickým prostredím KDE 4.4.1 je k dispozícii na http://pclinuxos.com
Pridať komentár
OpenOffice.org Calc pod drobnohľadom (11) - Ukážka makra

Článok

OpenOffice.org Calc pod drobnohľadom (11) - Ukážka makra

06.03.2008 12:00 | Články Prečítané : 6260 x
Potrebujete napríklad vyfarbiť bunky tabuľky podľa určitých podmienok? Dnes si ukážeme makro, ktorým rozšírime minule vytvorený kalendár o možnosť vyfarbovania buniek napríklad podľa zadaných sviatkov.

V predchádzajúcom dieli sme si ukázali, ako dokážeme využiť niektoré dátumové funkcie pri tvorbe kalendára. V základnej verzii sme však nepočítali so sviatkami, pretože tie sa postupne posúvajú – ako sa posúvajú dni. Okrem toho máme aj pohyblivý sviatok – Veľkú noc.

Zadanie sviatkov

Napriek týmto rôznorodostiam dokážeme do kalendára automaticky vyznačiť aj sviatky a to vrátane Veľkej noci bez toho, aby sme museli každoročne manuálne zadávať jej dátum. Do zošita „Kalendar“, ktorý sme si vytvorili minule pridáme tretí list „Sviatky“. Aby nás list „Pomocne“ nemýlil, schováme ho (menu „Formát – List – Skryť“).

Na liste „Sviatky“ si teraz musíme zadefinovať viacero údajov. Pretože pri tvorbe nového kalendára zostanú vyfarbené dni z minuloročného kalendára, budme musieť najprv všetky dni nastaviť na „základné“ farby a až potom budeme môcť vyfarbovať vlastné sviatky.

Pri vyfarbovaní musíme brať do úvahy dva údaje – farbu textu a farbu pozadia. Niektorí si možno budú chcieť osobitne (napríklad jemnejšom odtieňom) vyfarbiť aj tie dni v týždni, v ktorých nie sú žiadne „dátumy“. Napríklad, pondelok budú chcieť mať na zelenom odklade, ale ak začína mesiac neskôr ako v pondelok, tak dni, ktoré vlastne patria do iného mesiaca chcú vyfarbiť svetlejšou zelenou farbou.

Preto si do prvých dvoch riadkov napíšeme dvakrát dni pondelok až nedeľa. V prvom riadku nastavíme pre príslušné dni také farby textu a pozadia, ktoré chceme použiť pri príslušných číselných údajoch. V druhom riadku si nastavíme pozadie buniek, akými chceme tieto dni vyfarbiť v prípade, že číslo dňa tam nie je (farba textu preto nemá význam).


Zadefinovanie sviatkov a farieb dní“

Ďalej si do stĺpca „A“ zapíšeme všetky sviatky či iné dni, ktoré chceme v kalendári špeciálne vypísať. Aby sme urobili makro čo najuniverzálnejšie, pre každý z týchto dní si môžeme nastaviť inú farbu textu a inú farbu pozadia. Dátumy musíme naformátovať na tvar DD.MM.RR – teda musia začínať dňom a potom mesiacom. Rok nie je dôležitý, pretože sa neberie do úvahy, je však dobré ho ponechať, aby sme si mohli overiť údaje pri Veľkonočných sviatkoch. Dátumy musia byť zadané kontinuálne za sebou, pretože makro ukončí svoju činnosť na prvej prázdnej bunke.

Teraz cez „Nástroje – Makrá – Usporiadať makrá… – OpenOffice.org Basic…“ otvoríme okno „Makrá v OpenOffice.org Basic“. V ľavej časti vyhľadáme v zozname súbor s kalendárom (bude na konci zoznamu), cez rozbalovacie tlačidlo „+“ ho otvoríme, prejdeme na položku „Standard“ a nakoniec stlačíme tlačidlo „Nový“.


Vytvorenie prázdneho makra v kalendári“

Vlastné makro pre zafarbenie buniek

OpenOffice.org sa nás opýta na názov modulu (štandardne ponúkne „Module1“). Po potvrdení tohto názvu (alebo zadaní vlastného) sa nám otvorí editor makier OpenOffice.org. Tu nájdeme zadané tieto tri riadky (je to vlastne prázdne makro):

REM ***** BASIC *****
Sub Main
End Sub


Automaticky vytvorené prázdne makro v kalendári“

Text vymažeme, vložíme tam tieto funkcie (sú čiastočne okomentované a preto ich nebudeme bližšie vysvetľovať) a nakoniec uzavrieme editor makier:


Makro pre zafarbovanie buniek v editore“

function daj_stlpec (mesiac as double) as double
' Určenie prvého stĺpca mesiaca
if (mesiac mod 2)=0 then
' párne mesiace – február, apríl,…
daj_stlpec=8
else
' nepárne mesiace – január, marec
daj_stlpec=0
end if
end function

function daj_riadok (mesiac as double) as double
' Určenie prvého riadku mesiaca
' január, február – 4
' marec, apríl – 13
' máj, jún – 22
' júl, august – 31
' september, október – 40
' november, decemnber – 49
dim pom as double
daj_riadok=4
pom=mesiac-2
do while pom>0
daj_riadok=daj_riadok+9
pom=pom-2
loop
end function

Sub zafarbi_bunky
' Vlastné zafarbenie buniek kalendára
dim dokument, list_kalendar, list_sviatky, bunka as object
dim datum as string
dim den_sviatku, den, mesiac, tyzden as double
dim stlpec, riadok, sviatky as double
dim farba_pozadia_1, farba_pozadia_2, farba_textu as long

dokument=stardesktop.currentcomponent
list_kalendar=dokument.sheets(0)
list_sviatky=dokument.sheets(2)

' Vyfarbenie podľa dní v týždni
' Farby a pozadie je v prvom riadku, stĺpce A – G
for mesiac=1 to 12
' Cyklus pre všetky mesiace
stlpec=daj_stlpec(mesiac)
riadok=daj_riadok(mesiac)
for den=1 to 7
' Cyklus pre všetky dni v týždni
bunka=list_sviatky.GetCellByPosition(den-1,0)
farba_pozadia_1=bunka.cellbackcolor
farba_textu=bunka.charcolor
bunka=list_sviatky.GetCellByPosition(den-1,1)
farba_pozadia_2=bunka.cellbackcolor
for tyzden=1 to 6
' Cyklus pre všetky možné týždne v mesiaci
bunka=list_kalendar.GetCellByPosition(stlpec+den-1,riadok+tyzden-1)
if bunka.string<>"" then
bunka.cellbackcolor=farba_pozadia_1
bunka.charcolor=farba_textu
else
bunka.cellbackcolor=farba_pozadia_2
endif
next tyzden
next den
next mesiac

' Zoznam sviatkov začína na štvrtom riadku (adresuje sa od nuly, teda má číslo 3)
sviatky=3
' Cyklus sa opakuje dovtedy, kým v prvom stĺpci sú zadané nejaké dátumy
' Dátum musí byť vo formáte DD.MM.RR
do
bunka=list_sviatky.GetCellByPosition(0,sviatky)
datum=bunka.string
if datum<>"" then
' Ak je zadaný dátum
den_sviatku=val(mid(datum,1,2))
mesiac=val(mid(datum,4,2))
stlpec=daj_stlpec(mesiac)
riadok=daj_riadok(mesiac)
farba_pozadia_1=bunka.cellbackcolor
farba_textu=bunka.charcolor
for den=1 to 7
' Vyhľadanie, v ktorom dni týždňa sa nachádza príslušný sviatok
for tyzden=1 to 6
' Vyhľadanie, v ktorom týždni sa nachádza príslušný sviatok
bunka=list_kalendar.GetCellByPosition(stlpec+den-1,riadok+tyzden-1)
if val(bunka.string)=den_sviatku then
' Je to hľadaný sviatok
bunka.cellbackcolor=farba_pozadia_1
bunka.charcolor=farba_textu
endif
next tyzden
next den
endif
' Presun na ďalší sviatok
sviatky=sviatky+1
loop until datum=""
End Sub

Na záver si pridáme cez návrh formuláru do listu „Sviatky“ tlačidlo, ktoré pomenujeme „Vyfarbi kalendár“.


Vloženie a pomenovanie tlačidla do dokumentu“

V jeho vlastnostiach, na záložke „Udalosti“ priradíme k akcii „Stlačené tlačidlo myši“ makro „zafarbi_bunky“, ktoré sme práve vložili do dokumentu. Ukončíme návrh formulára a po stlačení tohto tlačidla sa na liste „Kalendar“ vyfarbia zadané dátumy (ktoré, samozrejme, nemusia byť iba sviatky). Ešte upozornime, že na poradí dátumov vôbec nezáleží, pretože sa netestuje ich postupnosť, ale každý sa vyhľadáva sám.


Priradenie makra k tlačidlu“

Pri otváraní tohto kalendára budeme upozornení, že obsahuje makrá a musíme povoliť ich spúšťanie. Preto musíme v nastaveniach OpenOffice.org (položka „Bezpečnosť“) nastaviť takú úroveň, aby sa nás OpenOffice.org aspoň opýtal, či môže toto makro spustiť.


Vlastný kalendár po vyfarbení sviatkov a dní“

Nabudúce: Štýly a formátovanie buniek.

Stránky OpenOffice.org: www.openoffice.sk


PDF verzia
Pridať komentár
Počet príspevkov : 145
Otázka...
 Distribúcia : Ubuntu 9.10
15.08.2008 09:16  |  Link
Robím pokusy s macrami a naťukal som toto:
Sub Kategoria_trafostanice

Dim premenna As Integer ' This is a comment for variable A
premenna = 9
premenna = premenna * 9

Dim dokument, listy, list_vi, bunka As Object
'Dim list_vi As Object
'Dim bunka As Object

dokument = StarDesktop.CurrentComponent
list_vi = dokument.Sheets(0)

bunka = list_vi.getCellByPosition(6, 6)
bunka.Value = 100

End Sub

Len riadok list_vi = dokument.Sheets(0)
mi vždy pri spustení v tom editore (Open Office Calc 2.4) vyhodí chybu :
Chyba pri behu.
Vlastnost alebo metóda nepodporovaná.

Čo robím zle?
Juchúúú! Písmenkujem na lukas.cerro.sk
 Kvako
Re: Otázka...
 
16.03.2009 13:01  |  Link
Musíš tam napísať list_vi = dokument.GetBySheets(0)
Prvý komentár
LinuxOS.sk © 2004-2008 | LinuxOS.sk - Team | ISSN 1337-7639
Táto stránka je optimalizovaná pre Mozillu, Operu, Konqueror a IE