Pomoc pro ztracené programátory - vytvoření jednoduchého
makra
Přehled informací

Vytvoření samostatného projektu
Samostatný projekt vytvoříme v prostředí AutoCADu následujícím postupem:
- z nabídek AutoCADu zvolte Nástroje,
- vyberte položku Makro, otevře se další nabídka,
- z otevřené nabídky vyberte položku Správce VBA,
- v otevřeném okně zprávce zmáčkněte tlačítko Nový. Správce
VBA vytvoří nový projekt se jménem Global2,
- nakonec zmáčkněte tlačítko Editor Visual Basic, otevře se
vývojové prostředí Visual Basic pro Aplikace.

Aktivace nového projektu v prostředí VBA IDE
V prostředí IDE VBA aktivujte nový projekt. Projekt aktivujete pomocí okna
Projekt - ACADProjekt dvojklikem nad jménem nového projektu (Global2). Situaci
znázorňuje následující obrázek:

Kód celého makra bude napsán ve standartním modulu.

Vytvoření nového modulu
Veřejné proměnné deklarujeme v tzv. modulu. Modul vytvoříme následujícím postupem:
- v prostředí IDE VBA umístěte kurzor do okna Projekt,
- zmáčkněte pravé tlačítko myši, zobrazí se vám nabídka,
- vyberte položku Vložit,
- z nabídky vyberte Modul (viz obrázek).

- v okně Projektu se vytvoří a zobrazí nový modul.

Vytvoření procedury zjistiJmenoEntity()
Všechny procedury budeme zadávat pomocí dialogového boxu Přidat proceduru.
Postup přidání nové
procedury pomocí dialogového boxu Přidat proceduru
- ve VBA IDE otevřete nabídku Vložit,
- vyberte položky Procedura...(viz obrazek),

- otevře se dialogový box Přidat proceduru,
- v dialogovém boxu zadejte:
- Název (název procedury): - zjistiJmenoEntity (v názvu můžou
být i háčky a čárky, ale nedoporučuje se),
- Typ (typ procedury): - procedura,
- Obor (obor platnosti procedury): - veřejný (procedura bude viditelná
ze všech částí projektu),
- dokončete vytvoření procedury soustredneObjekty() zmáčknutím tlačítka
OK,
- otevře se okno kódu s hlavičkou procedury, do které dopíšeme kód.

Vysvětlení kódu procedury zjistiJmenoEntity()
Při psaní kódu procedury si musíme uvědomit, že přerušení vyvolané tlačítkem
ESC je Visual Basicem považováno za chybu a proto k němu jako k chybě musíme
také přistupovat!
- v proceduře nejprve deklarujeme dvě lokální proměnné:
- vracenyObj - proměnná uchovávající vrácený objekt z výkresu,
- bodVyberu - místo, v kterém jsme vybrali objekt ve výkresu (v
našem případě ho nevyužijeme),
- po deklaraci proměnných programu sdělíme, aby v
případě výskytu chyby pokračoval následujícím příkazem. To nám umožní
při výskytu chyby, chybu zpracovat,
- abychom se v programu mohli jednoduchým způsobem vracet na začátek procedury
definujeme si návěští Opakuj,
- entitu ve výkresu můžeme vybrat pomocí metody GetEntity
objektu Utility,
- pokud při výběru nastane chyba (uživatel zmáčkne tlačítko ESC) je vygenerována
chyba a program pokračuje následujícím příkazem. Příkaz if chybu
odchytí, vymaže kontajner uchovávající chyby, zobrazí zprávu a ukončí
činnost procedury,
- není-li vygenerována chyba (uživatel vybral entitu) je zobrazeno
dialogové okno se zprávou jaká entita byla vybrána,
- program přejde na návěští Opakuj
a uživatel je dotázán na další entitu.
Public Sub zjistiJmenoEntity()
Dim vracenyObj As Object
Dim bodVyberu As Variant
On Error Resume Next
' při výskytu chyby pokračuj na dalším příkazu
Opakuj:
ThisDrawing.Utility.GetEntity vracenyObj, bodVyberu, _
"Vyber entitu ve výkresu: "
If Err <> 0 Then
Err.Clear
MsgBox "Ukončil jste výběr, Nashledanou."
Exit Sub
Else
MsgBox "Entita je typu: " & vracenyObj.EntityName
End If
GoTo Opakuj
End Sub

Zdrojové kódy
Zdrojové kódy je možné stáhnout zde:

Spuštění procedury (makra) z prostředí VBA IDE
Než spustíte makro nakreslete si v AutoCADu do výkresu několik entit nebo otevřete
soubor Entity.dwg.
Poté aktivujte opět okno editoru Visual Basic pro Aplikace.
V IDE VBA otevřete Oknem kódu a umístěte kurzor do procedury zjistiJmenoEntity().
Makro můžete spustit následujícími způsoby:
- pomocí tlačítka
Spustit proceduru z nástrojové lišty Standardní,
- vybráním položky Spustit proceduru z nabídky Spustit,
- zmáčknutím klávesy F5.
Po spuštění budete dotázáni na vybrání entity. Myší vyberte z výkresu entitu,
zobrazí se okno s vypsaným typem entity. Makro ukončíte stiskem klávesy ESC.
Pokud se potřebujete dozvědět jak spustit makro z prostředí AutoCADu prostudujte
si lekci Spuštění
makra.
