Předělat tlačítka na hypertextové odkazy je správná cesta, ale při zadávání musíte zvolit místo "text", - "tlačítko". Tam je toto tlačítko vázáno na buňku a její rozměry. Ovšem zjistíte, že se chová prakticky stejně jako když ho zadáte z panelů ovládacích prvků. Exituje ještě jiný typ makrem generovaného tlačítka, a tohle tlačítko opravdu sedí jen a jen v té buňce, do které ho dáte.
- Tlačítko vložené jako "ovládací prvek" se dá UKOTVIT buď ke stránce. Když je to ukotveno ke stránce, tak to jsou absolutní souřadnice. Ovšem i zde dochází k určitým posunům. Těmto se bráníme tak, že spojíme více prvků dohromady, pak se navzájem neposouvají. Samozřejmá je volba zamknout umístění ap.
- To zmiňované generované tlačítko vypadá jako zápis takto:
=HYPERLINK("vnd.sun.star.script:Standard.Ram1.Barvy?language=Basic&location=document&address="&ADDRESS(1;9;4;1;thissheet);" BARVY ")&T(STYLE("button"))
při tom "RAM1" je knihovna kterou načítá a spouští. "Barvy" je nejprve název makra, a podruhé název tlačítka. Zápis toho "location - address: není pro funkci důležitý, ale pohrajte si s tím.
Posílám nahrávané makro, kterým se spouští proces vygenerování tlačítka. Takže by to mělo být dost zřejmé co to dělá:
sub ButtonBarvy
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "Nr"
args1(0).Value = 1
dispatcher.executeDispatch(document, ".uno:JumpToTable", "", 0, args1())
rem ----------------------------------------------------------------------
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "ToPoint"
args2(0).Value = "A3"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args2())
rem ----------------------------------------------------------------------
dim args3(0) as new com.sun.star.beans.PropertyValue
args3(0).Name = "StringName"
args3(0).Value = "=HYPERLINK("+CHR$(34)+"vnd.sun.star.script:Standard.Ram1.Barvy?language=Basic&location=document&address="+CHR$(34)+"&ADDRESS(1;9;4;1;ThisSheet);"+CHR$(34)+" BARVY "+CHR$(34)+")&T(STYLE("+CHR$(34)+"button"+CHR$(34)+"))"
dispatcher.executeDispatch(document, ".uno:EnterString", "", 0, args3())
rem ----------------------------------------------------------------------
dim args4(0) as new com.sun.star.beans.PropertyValue
args4(0).Name = "ToPoint"
args4(0).Value = "A3:A4"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args4())
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:ToggleMergeCells", "", 0, Array())
rem ----------------------------------------------------------------------
dim args6(0) as new com.sun.star.beans.PropertyValue
args6(0).Name = "ToPoint"
args6(0).Value = "A3"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args6())
rem ----------------------------------------------------------------------
dim args9(0) as new com.sun.star.beans.PropertyValue
args9(0).Name = "Color"
args9(0).Value = -1
dispatcher.executeDispatch(document, ".uno:Color", "", 0, args9())
rem ----------------------------------------------------------------------
dim args10(4) as new com.sun.star.beans.PropertyValue
args10(0).Name = "BackgroundPattern.Transparent"
args10(0).Value = false
args10(1).Name = "BackgroundPattern.BackColor"
args10(1).Value = 15132415
args10(2).Name = "BackgroundPattern.URL"
args10(2).Value = ""
args10(3).Name = "BackgroundPattern.Filtername"
args10(3).Value = ""
args10(4).Name = "BackgroundPattern.Position"
args10(4).Value = com.sun.star.style.GraphicLocation.NONE
dispatcher.executeDispatch(document, ".uno:BackgroundPattern", "", 0, args10())
rem ----------------------------------------------------------------------
end sub
Jde o to, že funkční tlačítko můžete za určitých předpokladů jen kopírovat. Já ale generji asi 15 různých tlačítek, takže vlastní generování dělám zase makrem (dialog - vybrat) a vygenerovat včatně pozice, kde stojí kurzor. To je samozřejmě trochu složitější, ale měl by jste na to přijít sám, pokud máte trošku zájem.
Moje e-mailová adresa
Pokud je Váš problém vyřešen, označte prosím svůj příspěvek za "VYŘEŠENÝ"
Zlepšíte orientaci při vyhledávání řešení JAK OZNAČIT TÉMA ZA VYŘEŠENÉ