Makra - nefunkčnost jednoduchých maker (formátování)
Řadu let aktivně využívám Excel - převážně pro práci s daty (exporty/importy z ekon.databází, úpravy dat, přehledy). Taktéž řadu let fandím open alternativě (open office, libre office) a nesmírně bych si přál aby mohla být dobře použitelnou alternativou, neboť kanzelářské MS produkty již dávno cílí především na peněženky, aniž by reálně nabízely něco více než produkty z konce 90tých let (pokud jde o Excel, považuji za jedinou přidaná hodnotu možnost více bnež 65tis řádků, to je vše)
Při práci často používám pár svých maker VBA, během let jsem ve VAB nich "programoval" i pár aplikací (rozhodně bych se jimi nechlubil, leč fungují). Samozřejmě při zkoušení Open Office/Libre office (dále LO/OO) mne zajímalo jak je tomu s makry v Calcu a musím říci, že pocit je rozporuplný.
1. Nenašel jsem nějaký komplexnější materiál o makrech v LibreOffice, na základě něhož by pouhý pokročilejší uživatel (za programátora se nepovažuji) s nimi mohl skutečně začít pracovat.
2. To, co jsem našel (a nějaké příklady které jsem si zkoušel) mne dovedlo k poznáníá, že na co stačí ve VBA pár řádků kódu (velmi srozumitelného), je v OO/LO třeba někdy až vícenásobně delšího kódu, jehož srozumitelnost je poněkud sporná.
3. Makra z VBA (ani velmi jednoduchá) v OO/LO nefungují korektně (Samozřejmě předpokládám jejich spuštění při řádném nastavení - tj. podpora maker VBA, nastav. Option VBASupport 1 ...)
4. Bohužel správně nefungují ani nativní primitivní makra přímo nahraná v OO/LO
Pro ilustraci uvádím příklad - Makro které používám již řadu let pro připravu mé-standartní podoby sešitu.
Funkce:
- vybere všechny buňky, nastaví písmo arial, velikost 8 s normální pozicí bez efektů,
- zarovná sloupce
- nastaví barvu pozadí na transparentní
- 1.řádek zabarví (používám pro nadpisy, tj.jeho zvýraznění)
- Nastaví horizontální příčku na 1.řádek (tj. aby nadpisy byly stále vidět)
Makro viz dole v tomto příspěvku.
Pokud sešit otevřu v LO s nastavením na podporu VBA a uložím opět jako Excel.formát, makro se mi zachová s tím že se na začátek doplní "Option VBASupport 1". Proč ne. Po spuštění se místo nastavení horiz.příčky za 1.řádek nastaví příčka vertikální a to pár sloupců vpravo...
Pokud si obdobné makro zkusím vytvořit přímo v LO/OO nahráním, pak po spuštění se horizontáolní příčka nastaví pod 2l.řádek místo pod 1. a opět se nastaví pár sloupců vpravo příčka vertikální (o níž v makru nebyla řeč)
Je to jen takový hloupý příklad, leč demonstrující jasně, že bohužel v OO/LO dobře nefungují clelkem jednoduché věci. Ač nejsem přítelem MS, musím říci že podobné problémy jsem ve VBA zaznamenal jen zcela výjmečně, ve složitých případech)
Rád bych věděl zda existuje jednak nějaká rozumná cesta jak se do maker OO/LO ponořit, bez nutnosti vystudovat Matfyz či FEL, jednal šance, že budou makra v OO/LO skutečně na základní operace fungovat dobře. Formátování sešitu mezi ně rozhodně počítám !
Bohužel nějakou komplexnější konferenci na toto téma jsem nezahlédl, jinak bych jistě sám rád přispěl, či se alespoň poučil.
P.Janda
Makro VBA:
Sub FormatSesit()
Cells.Select
With Selection.Font
.Name = "Arial"
.Size = 8
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
End With