Umístění tlačítka do listu Excelu je velice jednoduché.
V listu se Vám zobrazí nové tlačítko s popisem CommandButton1 (viz. obrázek).
Přesuňte kurzor myši nad vytvořené tlačítko a dvojklikněte levým tlačítkem. Otevře se okno editoru Visual Basicu pro Aplikace s otevřeným oknem kódu pro akci tlačítka Click. Než začneme doplňovat obslužný kód tlačítka, změníme zobrazovaný text na tlačítku - vlastnost Caption.
Přepnete-li se do Excelu, bude tlačítko vypadat přibližně následovně.
Abychom mohli začít psát obslužný kód tlačítka, dvojklikněte levým tlačítkem myši nad tlačítkem (CommandButton1). Otevře se editor Visual Basic s oknem kódu pro vytvářené tlačítko:
Do takto otevřeného okna již můžeme zapsat obslužný kód tlačítka. Během psaní funkcí Vám bude VBA pomáhat pomocí funkce IntelliSense se psaním kódu programu.
Následující kód si dobře zapamatujte, je v něm ukázáno odchycení chyby v případě, že se pokusíme získat objekt aplikace AutoCAD a tento objekt neexistuje (AutoCAD není spuštěn).
Dim AppObj As Object ' deklarace proměnné AppObj jako objektu On Error Resume Next ' při běhové chybě pokračuje program příkazem ' následujícím příkaz, při kterém nastala chyba. Set AppObj = GetObject(, "AutoCAD.Application") ' pokus získání instance objektu AutoCAD.Application If Err Then ' objekt neexistuje - AutoCAD není spuštěn MsgBox ("AutoCAD není spuštěn") Err.Clear ' explicitní vymazání objektu Err (chyba), ' po odstranění chyby Exit Sub ' ukončení procedury End If
Vkládaný text v AutoCADu musí mít zadány následující parametry:
Dim bodVlozeni(0 To 2) As Double ' deklarace proměnné pole pro vložení třech prvků Double, ' reprezentujících souřadnice bodu vložení textu Dim textVyska As Double ' deklarace proměnné typu Double - výška textu Dim textRetezec As String ' deklarace proměnné typu String - vypisovaný text Dim textObj As Objekt ' deklarace proměnné objekt
Do proměnné bodVlozeni zadáme jednotlivé hodnoty souřadnic vložení:
bodVlozeni (0) = 50 ' nastavení x-ové souřadnice bodu vložení bodVlozeni (1) = 30 ' nastavení y-ové souřadnice bodu vložení bodVlozeni (2) = 0 ' nastavení z-ové souřadnice bodu vložení
Nastavíme velikost zobrazovaného textu a zobrazovaný text:
textVyska = 5 ' nastavení velikosti textu textRetezec = "Zdravíčko světe! Pozdravuje Excel!" ' zobrazovaný text
Abychom mohli ukazovat na jednotlivé objekty v aktivním dokumentu AutoCADu vytvoříme si objekt, ukazující na aktivní dokument AutoCADu:
'Vytvoření objektu myDrawing Set myDrawing = AppObj.ActiveDocument
V tuto chvíli máme zadány všechny potřebné informace pro zobrazení textu. Text zobrazíme pomocí nastavení textového objektu a jeho přidáním do modelového prostoru (metoda AddText):
Set textObj = myDrawing.ModelSpace.AddText _ (textRetezec, bodVlozeni, textVyska) ' vytvoření textového objektu v modelovém prostoru
Se zobrazeným textem můžeme i nadále jednoduchým způsobem pracovat. Například můžeme nastavit barvu zobrazeného textu.
Při změně barvy (i jakékoliv jiné vlastnosti) musíme znát jméno upravovaného objektu - pro náš příklad textbj. Dále již stačí přidat jméno vlastnosti a přiřadit jí novou hodnotu:
textObj.Color = 4 ' nastavení nové barvy napsaného textu
Obdobně můžeme změnit zvětšení výkresu. Nejprve si musíme zjistit jaké zvětšení požadujeme - pro náš příklad zvětšení na celou obrazovku ZoomExtents. Dále si musíme uvědomit, že zvětšení se vztahuje na výkresový dokument. Z těchto úvah nakonec získáme následující úsek kódu:
AppObj.ZoomExtents ' zvětšení aktuálního okna ve výkresu
Nakonec uložíme výkres pod jménem "PozdravZExcelu.dwg":
AppObj.SaveAs("PozdravZExcelu.dwg") ' zvětšení aktuálního okna ve výkresu
Nakonec opustíme proceduru pomocí funkce Exit:
Exit Sub ' ukončení procedury
Jak spustíte napsané makro se dozvíte v následujícím odstavci.
Sešit Excelu se zdrojovými kódy makra je možné nahrát v souboru SesitSPozdravem.xls. Přesto Vám doporučujeme, alespoň několik řádek kódu napsat ručně, abyste viděli v činnosti pomůcky interaktivního vývojového prostředí Visual Basicu pro Aplikace v činnosti.