Vytvoření kódu procedury

Přehled informací

Umístění tlačítka do listu Excelu

Umístění tlačítka do listu Excelu je velice jednoduché.

Postup umístění tlačítka do listu Excelu

V listu se Vám zobrazí nové tlačítko s popisem CommandButton1 (viz. obrázek).

Upravení vlastností tlačítka CommandButton1

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.

Postup změny vlastnosti Caption tlačítka

Přepnete-li se do Excelu, bude tlačítko vypadat přibližně následovně.

Možné problémy

Doplnění obslužného kódu tlačítka CommandButton1

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.

Deklarace objektu Application a ošetření výskytu chyby

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

Deklarace potřebných proměnných

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

Zadání hodnot do jednotlivých proměnných

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

Vytvoření objektu ukazujícího na aktivní dokument AutoCADu

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

Zobrazení textu v AutoCADu

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

Práce se zobrazeným textem

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

Uložení zobrazeného 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

Ukončení běhu procedury

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.

Zdrojový kód procedury

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.