VBA v MicroStationu, doplněk Otočit text dle úsečky, zavedení a spouštění doplňků.
Pokud chceme pracovat s MicroStationem opravdu efektivně, můžeme použít různé formy rozšíření jeho funkčnosti a přizpůsobení.
Jednou z nich jsou programy napsané v programovacím jazyce VBA (Visual Basic for Applications), tedy v jazyce, který je používán v kancelářském balíku Microsoft Office a v řadě dalších aplikací. Stejné je i vývojové prostředí, takže ten, kdo používá VBA například v Excelu, ho může snadno začít používat i v MicroStationu.
Rozsah využití VBA sahá od jednoduchých automaticky nahraných maker po komplexní a funkčně bohaté aplikace s vlastním uživatelským rozhraním. Pomocí VBA můžeme například:
- Vytvářet vlastní uživatelské funkce;
- automatizovat často se opakující úkony;
- ovládat hostitelskou aplikaci, v našem případě MicroStation (např. upravovat nastavení, ovládat uživatelské rozhraní, vytvářet, manipulovat se soubory);
- propojit více aplikací používajících VBA (např. načítat data z Excelu nebo je do něj zapisovat);
- přistupovat k Windows API a ostatním nízko úrovňovým funkcím systému.
Programy VBA mohou být spuštěna ze seznamu maker, mohou pro ně být vytvořeny vlastní nástroje, nabídky nebo klávesové zkratky. Mohou být spouštěny automaticky v reakci ne nějakou událost, např. otevření nebo zavření souboru nebo změnu některého prvku ve výkrese.
Přestože je VBA založen na dnes již nepodporovaném jazyce Visual Basic 6.0, je to užitečný a stále hodně používaný nástroj.
Z možností, kterými VBA disponuje, vyplývá i nebezpečí: programy VBA mohou obsahovat škodlivý kód, který může napáchat velké škody. Je proto na místě obezřetnost.
Ukázkový doplněk VBA
Jak může fungovat doplněk (program doplňující funkce a možnosti MicroStationu) si ukážeme na jednoduché funkci pro otočení textů podle úsečky.
Při umísťování nového textového prvku můžeme použít různé metody (mezi body, nad prvek, pod prvek atd.). Pokud chceme nad prvek, v tomto případě úsečku, přesunout dříve umístěný text, musíme ho ručně otočit. Pokud je textů více, každý s jiným úhlem, musíme je otočit postupně po jednom. Je to neefektivní opakovaný úkon, tedy kandidát na automatizaci pomocí vlastní funkce:
Je to jednoduchý příklad rozšíření funkčnosti MicroStationu (nová funkce pro otočení textu) a úpravy uživatelského vzhledu (nový panel nástrojů pro tuto funkci).
Tvorba doplňků VBA
Předpokladem pro vytvoření doplňku je základní znalost jazyka Visual Basic for Applications a znalost API MicroStationu (aplikační programovací rozhraní). Pro VBA existuje mnoho kurzů, návodů a knih pro různé úrovně znalostí, od úplných začátečníků po experty. Zdroje pro API jsou omezenější, v češtině prakticky neexistují. Stačí ale získat základní přehled a pak je již snadné dohledávat potřebné informace „za pochodu“.
Zavedení a spouštění doplňku VBA
Programový kód VBA se v MicroStationu ukládá do souborů s příponou mvba. Jeden soubor může obsahovat kód libovolného rozsahu, od jedné funkce po komplexní aplikaci. V terminologii MicroStationu se nazývá projekt. Pro práci s projekty slouží VBA správce projektů, dostupný z nabídky Pomůcky – Makro – Správce projektů. Můžeme zde vytvořit nový nebo zavést či odpojit existující projekt, spouštět konkrétní funkce a procedury (makra) ze zavedených projektů, otevřít Visual Basic Editor (vývojářské prostředí) nebo nahrávat makra.
Zavedení doplňku Otočit text dle úsečky
Doplněk je k dispozici ke stažení v archivním souboru jskRoTeByLe.zip.
V nejjednodušším možném způsobu použití nevyžaduje žádnou speciální instalaci, stačí ho pouze rozbalit a umístit do libovolné složky na disku. Ve VBA správci projektů použijeme volbu Zavést projekt a vyhledáme ho tam, kde jsme ho umístili. Zobrazí se v seznamu projektů. Dvakrát na něho klikneme, nebo použijeme nástroj Makra (šipka v panelu nástrojů):

Zobrazí se dialog se seznamem dostupných maker. (Je možno ho otevřít i přímo z nabídky Pomůcky – Makro – Makra, klávesová zkratka Alt+F8.):

V tomto doplňku je jediná funkce Rotate. Dvojklikem nebo stisknutím tlačítka Run ji spustíme.
Funkci ze zavedeného projektu můžeme spustit i příkazem:
VBA RUN [<název projektu>]<název funkce>
V našem případě:
VBA RUN [jskRoTeByLe]Rotate
Instalace doplňku
Výše popsaný postup je funkční, ale ruční zavádění a spuštění přes dialog Makra nebo vypisování příkazu je nepraktické. I tyto kroky je možné zautomatizovat. Vyžaduje to buď umístění doplňku do vhodné složky podle konkrétní konfigurace MicroStationu, nebo úpravu příslušné konfigurační proměnné a vytvoření vlastního panelu nástrojů.
Balíček jskRoTeByLe2 obsahuje vše potřebné, včetně panelu nástrojů:

Postup, jak provést instalaci, je popsán v tomto článku.