Čas od času se vracím k tématu, kterak obarvovat prostý text programového kódu. Jeho zdrojem je v mém případě zpravidla Excel a editor VBA.
![Programový kód v editoru VBA](https://sp-ao.shortpixel.ai/client/to_webp,q_glossy,ret_img,w_495,h_268/https://proexcel.cz/wp-content/uploads/obarvovani-kodu-01.png)
Prostým zkopírováním kódu do schránky se přenáší pouze neformátovaný text. A co víc, jeho přímé vložení do dialogu Skype v současné době není možné, dočkáte se pseudočínského paskvilu (musíte použít prostředníka – textový editor). Ve svých výukových materiálech si každopádně přeji mít kód obarvený (klíčová slova, komentáře atd.).
K řešení potřebujeme dvě věci – prvek, který umí zobrazovat naformátovaný text – RTF (Rich Text Format), případně HTML a techniku, jak kód přebírat obarvený (resp. jak jej znovu obarvit).
Samotný Excel či Word si s vkládaným naformátovaným textem poradí, na takovém formuláři ve VBA ale běžně nemáme k dispozici vhodný ActiveX prvek. Klasický TextBox zvládá pouze prostý text, a RichTextBox bychom museli na UserForm dopravit s dopomocí. V podstatě se jedná o prvek Visual Basicu 6, kdy jeho použití nebrání ani tak technické problémy, jako spíš zabezpečení a licencování (obojí se nechá obejít zásahem do registru, ale…). A když už si najdete jiný prvek (kdo hledá, najde InkEdit), musíte řešit obarvení přejatého kódu. Já osobně jsem zvolil regulární výrazy – objekt RegExp vypůjčený z VBScriptu). Ale o tom někdy jindy, chtěl jsem jen nastínit, jak trnitá cesta to je.
Pro administrátory webových stránek slouží k účelům zpracování programového kódu celé PHP moduly. Mezi nejznámější patří robustní GeSHi – Generic Syntax Highlighter. Vybírat si můžete z různých programovacích jazyků (VBA si dotvoříte ze stávající definice pro Visual Basic), řádky číslovat aj.
1 2 3 4 5 6 | Sub VytvorSeznamObr() ReDim PoleSouboru(0 To 1) f = Dir(Directory, 7) 'setřídění QuickSort PoleSouboru End Sub |
Přebírat text obarvený z okna editoru VBA zvládne kupříkladu placený HyperSnap a jeho modul TextSnap. Ačkoliv autoři od tohoto nástroje upouští a v budoucích verzích možná nebude vůbec (jednoduše se na soudobých prvcích podporujících DirectX, hardwarovou podporu atp. nechytá), na stařičkém editoru problém nemá. Z něj pak už obarvený text kopírujete přes schránku jinam.
![HyperSnap - program pro snímání obrazovky (a textu)](https://sp-ao.shortpixel.ai/client/to_webp,q_glossy,ret_img,w_720,h_480/https://proexcel.cz/wp-content/uploads/obarvovani-kodu-02.png)
Cílem tohoto článku je ovšem Notepad++. Ten slouží jako víc než skvělá náhrada textového editoru Notepad (Poznámkový blok). Je zdarma, existuje přenositelná verze, umí překódování textu, podporuje moduly a co nás zajímá nejvíce, umožňuje obarvovat programový kód podle vybrané syntaxe (a kromě jiného i třeba seskupovat programové bloky – procedury – a vytvořit z nich přehlednou stromovou strukturu). V Notepadu++ není samozřejmě problém předefinovat pravidla syntaxe dle vašich potřeb. Pro export naformátovaného textu použijete plugin NppExport.
![Obarvení kódu a jeho export v programu Notepad++](https://sp-ao.shortpixel.ai/client/to_webp,q_glossy,ret_img,w_918,h_836/https://proexcel.cz/wp-content/uploads/obarvovani-kodu-03.png)
Ve Wordu nebo jinde pak už jen překlopíte obsah ze schránky (s volbou zachování formátování zdroje). Následně můžete ještě aplikovat vlastní styly odstavce. Obrázek níže ukazuje užití modernějšího a vhodnějšího fontu Consolas a změnu řádkování (srovnání s přežitým fontem Courier New).
![Microsoft Word - vložení programového kódu ze schránky](https://sp-ao.shortpixel.ai/client/to_webp,q_glossy,ret_img,w_1047,h_488/https://proexcel.cz/wp-content/uploads/obarvovani-kodu-04.png)