VBA Debug Print | Jak používat Debug.Print k analýze výstupu kódu VBA?

Ladění Excel VBA. Tisk

Debug Print je jedním z užitečných nástrojů prezentovaných v editoru VBA, aby bylo možné zjistit, jak program funguje, a pomáhá analyzovat změny hodnot proměnných vytvořených v programu VBA. Zobrazuje výstup okamžitého okna, když spustíme program bez jakýchkoli chyb.

Debug.print nabízí dvě hlavní výhody oproti použití Msgbox k zobrazení výstupu kódu. Eliminuje potřebu pokaždé klikat na tlačítko OK a zobrazuje protokol vrácených výstupních hodnot do okamžitých oken. Šetří spoustu času uživatelům. Tento článek vysvětluje použití aplikace Excel VBA Debug Print s mnoha příklady a vysvětluje, jak ji používat, a zahrnuje následující věci.

Co je VBA Debug Print?

Debug je objekt ve VBA a používá se u dvou metod nazývaných Assert a Print. Tisk je užitečný při zobrazování zpráv a prosazuje při hodnocení podmínek. Ve VBA se příkaz debug.print používá na jakémkoli místě programovacího programu k zobrazení hodnot proměnné nebo zpráv v Okamžitém okně. Tyto nepotřebují žádné potvrzení ani potvrzení a nevykazují žádný vliv na vyvinutý kód. Je bezpečné a nejlepší použít v kódu v situaci usnadnění přístupu mnoha uživatelům. Ty jsou užitečné při testování nebo vyhodnocení kódu, aby se potvrdilo, že funguje správně nebo ne. Tisk proměnných, řetězců, čísel, polí, hodnot v tabulkách aplikace Excel a prázdných a aktivních listů.

Jak používat Excel VBA Debug Print?

VBA debug.print je příkaz užitečný při zobrazování většího počtu proměnných najednou v okamžitém okně. Je to nejlepší a alternativní přístup k zobrazení výstupu.

Například,

Počet ladění, tisk, součet, průměr, standardní odchylka

Jak je znázorněno v příkladu, všechny proměnné jsou odděleny čárkami. Tento příkaz je schopen přenést výstup do bezprostředního okna i v případě, že okno není otevřeno. Nezastaví spuštění kódu jako v Msgbox. Tato flexibilita podporuje nepřetržité sledování změn ve výstupu s ohledem na změny v kódu.

Počet proměnných, součet, průměr a směrodatná odchylka jsou zobrazeny na stejném řádku se stejným prostorem mezi nimi. Pokud se Okamžité okno neotevře, zobrazte výstup podle následujících kroků.

Kroky k otevření okna Okamžité a zobrazení výstupu

  • Stiskněte Ctrl + G nebo klikněte na nabídku „Zobrazit“ v editoru VBA.
  • Vyberte možnost „Okamžité okno“.
  • Umístěte kurzor do okna a znovu spusťte kód.
  • Sledujte výstup v okně.

Příklady aplikace Excel VBA Debug.Print

Následují příklady, které ukazují použití ladicího tisku v aplikaci Excel VBA.

Tuto šablonu VBA Debug Print Excel si můžete stáhnout zde - VBA Debug Print Excel Template

Příklad č. 1 - Zobrazení hodnot proměnných

Nejprve přejděte na kartu Vývojář, klikněte na Makra a vytvořte makro, kterým napíšete kód do VBA a přidáte k němu název.

Po přidání jména klikněte na vytvořit. Tím se otevře editor VBA.

Vytvořte malý program, jak je znázorněno na obrázku.

Kód:

 Dílčí proměnné () Dim X As Integer Dim Y As String Dim Z As Double X = 5 Y = "John" Z = 105.632 Debug.Print X Debug.Print Y Debug.Print Z End Sub 

Jak je znázorněno na snímku obrazovky, tři dimenze nebo proměnné jsou zmenšeny jako X, Y a Z jako celé číslo, řetězec a Double. K tisku těchto hodnot se používá Debug.print a výstup se zobrazí v okamžitém okně. Stisknutím kombinace kláves CTRL + G zobrazíte výstup, jak je znázorněno na snímku obrazovky.

Spusťte tento kód pomocí klávesy F5 a stisknutím  kombinace kláves CTRL + G zobrazte výstup v Okamžitém okně.

Tento program lze zjednodušit oddělením příkazů debug.print čárkou.

Kód:

 Dílčí proměnné () Dim X As Integer Dim Y As String Dim Z As Double X = 5 Y = "John" Z = 105.632 Debug.Print X, Y, Z End Sub 

Toto ladicí prohlášení vytiskne výstup na stejném řádku, jaký je uveden na snímku obrazovky.

Příklad č. 2 - Ladění tisku do souboru

Tento příklad ilustruje použití ladicího tisku VBA k zobrazení výstupu do souboru, když je délka textu příliš vysoká.

Program pro tisk výstupu do souboru je vyvinut, jak je znázorněno na obrázku.

Kód:

Sub DebugPrintToFile () Dim s As String Dim num As Integer num = FreeFile () Otevřít "D: \ articles \ Excel \ test.txt" pro výstup jako #num s = "Hello, world!" Debug.Print s 'zápis do okamžitého okna Print #num, s' zápis výstupu do souboru Zavřít #num End Sub

V tomto programu jsou dvě proměnné zvané S a Num považovány za řetězec a celé číslo. Příkaz open se používá k vytvoření textového souboru s testem názvu. Řetězec s názvem „Hello World“ je deklarován do proměnné S.

Když spustíte kód VBA ručně nebo pomocí klávesy F5, výstup se zapíše do okamžitého okna a soubor se zobrazí ve složce najednou.

Výstup do souboru je zobrazen na níže uvedeném obrázku.

Tiskový výstup do souboru je výhodný, pokud je uveden dlouhý text.

Příklad č. 3 - Zobrazení faktoriálu čísla v okně Okamžité

Tento příklad ilustruje použití příkazu debug.print k zobrazení faktoriálu čísla.

Kód:

 Public Sub Fact () Dim Count As Integer Dim number As Integer Dim Fact As Integer number = 5 Fact = 1 For Count = 1 To number Fact = Fact * Count Next Count Debug.Print Fact End Sub 

K určení faktoriálu se berou v úvahu tři proměnné, včetně počtu, počtu a faktů. Pro smyčku se opakuje násobení hodnoty faktu s počtem, aby se určil faktoriál čísla.

Zde se příkaz debug.print používá mimo smyčku „pro“ k zobrazení hodnoty po dokončení smyčky. Výstup je určen jako.

Pokud použijeme příkaz debug.print uvnitř smyčky „pro“, zobrazí se hodnota faktu pro každý opakující se čas, jak je znázorněno na obrázku.

Kód:

 Public Sub Fact () Dim Count As Integer Dim number As Integer Dim Fact As Integer number = 5 Fact = 1 For Count = 1 To number Fact = Fact * Count Debug.Print Fact Next Count End Sub 

Spusťte kód stisknutím klávesy F5 a podívejte se na výstup v okamžitém okně. V této situaci bychom měli považovat poslední hodnotu za faktoriál daného čísla.

Příklad č. 4 - Tisk celého názvu aktivního sešitu

Tento příklad vysvětluje, jak vytisknout aktuální název sešitu do okamžitého okna

Program je vyvíjen tak, jak je znázorněno na obrázku.

Kód:

 Sub Activework () Dim count As Long For count = 1 To Workbooks.count Debug.Print Workbooks (count) .FullName Next count Debug.Print count End Sub 

Zde 'count' je proměnná, která se počítá k počtu aktivních sešitů a k zobrazení celého názvu aktivního sešitu. Celý název a počet aktivních sešitů se zobrazí, jak je znázorněno na obrázku.

Cesta sešitu v jednotkách se přesně zobrazí pomocí příkazu VBA debug.print.

Věci k zapamatování

  • Hlavním problémem ladění .print není možnost zalamování textu pro dlouhé řetězce v bezprostředním okně
  • Okamžité okno by mělo být přivedeno na vrchol, abyste viděli výstup v uživatelském rozhraní
  • Je nemožné zalomit dlouhý text zobrazený v Okamžitém okně. V této situaci je třeba výstup zobrazit do souboru uloženého na jednotce.