Skočiť na obsah Skočiť na menu

Inet.sk - internetový denník

internetový denník

Makrá v OpenOffice.org 14/2008

V poslednom tohtoročnom pokračovaní seriálu o makrách v OpenOffice.org sa budeme venovať okrajom buniek v tabuľkovom procesore Calc.


OpenOffice.org nám ponúka pre ohraničovanie buniek (menu „Formát – Bunky“) pomerne obmedzené možnosti nastavovania vonkajších a vnútorných oddeľujúcich čiar v bunkách. Tieto obmedzenia vyplývajú hlavne z obmedzenej ponuky čiar, ktorých je iba 17. Preto si dnes, na základe vašich požiadavok, ukážeme jednoduché makro, kde budeme môcť nastaviť tieto okraje ľubovoľne.

Orámovanie bunky - štandardný dialóg

Hneď na úvod asi rozčarujeme tých, ktorí očakávali možnosť nastavenia napríklad čiarkovanej čiary – OpenOffice.org toto zatiaľ neumožňuje. Pri definícii každej čiary môžeme definovať štyri parametre: farbu v RGB formáte, šírku základnej ohraničujúcej čiary, šírku prípadnej druhej ohraničujúcej čiary a šírku medzery medzi nimi. Tieto číselné údaje môžeme zadávať veľmi presne – zadávajú sa totiž ako násobky 1/100 milimetra.

OpenOffice.org umožňuje nastaviť celkove osem nezávislých čiar. Pravdaže, všetky možnosti využijeme iba pri ohraničovaní celej skupiny buniek, čo je zrejmé z prehľadu týchto čiar:
štyrmi čiarami môžeme ohraničiť vonkajšie okraje buniek (zľava, sprava, zhora a z dola). Ďalšie dve čiary využijeme iba pri skupine buniek, pretože pomocou nich môžeme nastaviť ich vnútorné horizontálne a vertikálne oddelenie. A posledné dve čiary sa aplikujú v každej bunke – ide totiž o šikmé preškrtnutie bunky či už smerom zľava dole doprava hore alebo naopak, smerom zľava hore doprava dole.

To by z teórie mohlo stačiť a teraz si ukážeme priamo makro, pomocou ktorého budeme nastavovať jednotlivé okraje vo vopred označenej skupine buniek. V použitom príklade nastavíme všetky možné čiary, aby ste videli, ako sa nastavujú. Pre jednoduchosť budeme pri nastavovaní používať priamo zadané hodnoty farieb a šírky čiar. Tí, ktorí potrebujú prípadné parametrické nastavenie si z doterajších dielov určite dokážu naprogramovať makro tak, aby vyhovovalo ich požiadavkám.

Výsledok nášho "orámovania"

REM Funkcia nastaví parametre objekovej premennej okraja
function okraj (farba as long, vnutri, medzera , vonku as integer) as object
 ' Objektová premenná obsahujúca definíciu okraja
 dim pom as New com.sun.star.table.BorderLine
 pom.Color=farba ' Farba je vo formáte RGB – najlepšie zadávať hexadecimálne ako &Hrrggbb
 ' Nasledujúce šírky sa zadávajú v násobkoch 1/100 mm
 pom.InnerLineWidth=vnutri ' Vnútorná linka okraja. Ak používame iba jednu čiaru, tak je potrebné nastaviť hodnotu 0
 pom.LineDistance=medzera ' Šírka medzery v prípade, že používame na ohraničenie dve čiary
 pom.OuterLineWidth=vonku ' Vonkajšia linka okraja, používa sa aj v prípade nastavenia jednej čiary
 okraj=pom
end function

REM procedúra vykreslí okraje označených buniek
sub nastav_okraje
 Dim Dokument, List, Bunky, Okraje as object
 ' Objektová premenná obsahujúca definíciu okrajov buniek vrátane stredových čiar
 Dim OkrajeBuniek As New com.sun.star.table.TableBorder

 Dokument = ThisComponent
 ' Ak by sme chceli nastavovať presne určené bunky, môže sa naprogramovať napríklad:
 ' List = Dokument.Sheets(0)
 ' Bunky = list.getCellRangeByPosition(1,1,8,5)
 bunky=Dokument.CurrentSelection() ' Aktuálne označené bunky
 OkrajeBuniek=Bunky.TableBorder ' Aktuálne okraje buniek
 
 ' Podľa toho, čo chceme nastaviť, zmeníme príslušné okraje.
 ' Ak niektorý nenastavíme, zostane nezmenený.
 
 ' Ľavý vonkajší okraj
 Bunky.TableBorder.IsLeftLineValid = TRUE ' Povolenie ľavého okraja
 ' Nastavenie farby R=F0, G=0A, B=5B; vnútorná čiara široká 2 mm, medzera medzi čiarami 1 mm, vonkajšia čiara 3 mm
 OkrajeBuniek.LeftLine=okraj(&HF00A5B,200,100,300)

 ' Pravý vonkajší okraj
 Bunky.TableBorder.IsRightLineValid = TRUE ' Povolenie pravého okraja
 ' Nastavenie farby R=00, G=00, B=FF; vnútorná čiara žiadna (okraj je iba jednoduchá čiara), vonkajšia čiara 0,5 mm
 OkrajeBuniek.RightLine=okraj(&H0000FF,0,0,50)
 
 ' Horný vonkajší okraj
 Bunky.TableBorder.IsTopLineValid = TRUE ' Povolenie horného okraja
 ' Nastavenie farby R=F5, G=00, B=72; vnútorná čiara 0,1 mm, medzera medzi čiarami 0,2 mm, vonkajšia čiara 0,5 mm
 OkrajeBuniek.TopLine=okraj(&HF50072,10,20,50)
 
 ' Dolný vonkajší okraj
 Bunky.TableBorder.IsBottomLineValid = TRUE ' Povolenie dolného okraja
 ' Nastavenie farby R=00, G=FF, B=FF; vnútorná čiara 0,5 mm, medzera medzi čiarami 0,1 mm, vonkajšia čiara 0,3 mm
 OkrajeBuniek.BottomLine=okraj(&H00FFFF,50,10,30)

 ' Vnútorná vodorovná čiara
 Bunky.TableBorder.IsHorizontalLineValid = TRUE ' Povolenie vnútornej vodorovnej čiary
 ' Nastavenie farby R=00, G=00, B=00 (čierna); vnútorná čiara 0,1 mm, medzera medzi čiarami 0,1 mm, vonkajšia čiara 0,1 mm
 OkrajeBuniek.HorizontalLine=okraj(0,10,10,10)
 
 ' Vnútorná zvislá čiara
 Bunky.TableBorder.IsVerticalLineValid = TRUE ' Povolenie vnútornej zvislej čiary
 ' Nastavenie farby R=55, G=55, B=55; vnútorná čiara 0,1 mm, medzera medzi čiarami 0,2 mm, vonkajšia čiara 0,1 mm
 OkrajeBuniek.VerticalLine=okraj(&H555555,10,20,10)
 
 ' Vlastné nastavenie okrajov buniek
 Bunky.TableBorder = OkrajeBuniek
 
 ' Šikmé čiary vo vnútri každej bunky – nastavia sa v každej bunke výberu, nie je možné nastavovať jednu čiaru pre celý výber
 
 ' Čiara z ľavého dolného rohu do pravého horného rohu
 ' Nastavenie farby R=FF, G=55, B=00; vnútorná čiara 0,1 mm, medzera medzi čiarami 0,1 mm, vonkajšia čiara 0,2 mm
 Bunky.DiagonalBLTR=okraj(&HFF5500,10,10,20)
 
 ' Čiara z ľavého horného rohu do pravého dolného rohu
 ' Nastavenie farby R=00, G=55, B=FF; vnútorná čiara žiadna (okraj je iba jednoduchá čiara), vonkajšia čiara 0,3 mm
 Bunky.DiagonalTLBR=okraj(&H0055FF,0,0,30)
end sub

 

Je Vaša doména voľná?

Platená reklama

Textová reklama

Ako začať podnikať na internete? Nechajte si poradiť. Aký má byť obsah kvalitne www stránky? Tvorba www stránok, Tvorba webu, Redakčný systém - CMS, Prieskumy o nakupovaní na internete, Pôžičky
Kompletné informácie o Kika Banská Bystrica | Čo takto navštíviť Viedeň? | Zaujímavé informácie priamo od zdroja

Newsletter


Copyright © 2002 - 2012 Inet.sk, s. r. o.Všetky práva vyhradenéNeprešlo jazykovou úpravouISSN 1336-1899

Využívame kvalitný webhosting za rozumnú cenu od Webhosting Inet.sk


Bilancia skrývky Fotokniha Fotografie Osobnosti.sk