Okamžité okno aplikace Excel VBA - 5 úžasných způsobů, jak ji používat!

„Okamžité okno“ může být užitečným nástrojem, který lze použít při práci s VBA v aplikaci Excel.

Okno Okamžité vám umožňuje rychle provádět například následující akce:

  • Získejte informace o souborech aplikace Excel (například počet listů v sešitu nebo název sešitu)
  • Získejte informace o Debug.Print rychle
  • Spusťte řádek kódu během několika sekund
  • Spusťte makro (nebo zavolejte funkci)
  • Získejte informace o proměnných (nebo nastavte hodnotu nebo proměnné)

I když pro práci s VBA v aplikaci Excel nemusíte používat okamžité okno, znalost toho, jak jej dobře používat, vás může výrazně zefektivnit.

V tomto tutoriálu pokryju vše, co potřebujete vědět o okamžitém okně a o tom, jak jej nejlépe použít (vysvětleno na příkladech).

Začněme!

Co je okamžité okno v aplikaci Excel VBA?

Okamžité okno je součástí editoru VB, který můžete použít k rychlým činnostem.

Chcete -li uvést příklad, pokud máte sešit s některými skrytými listy a chcete rychle zjistit počet celkových listů, můžete to udělat za několik sekund pomocí okna Immediate.

Okamžité okno toho zvládne mnohem více (jak uvidíte dále v tomto tutoriálu). Ale pro začátek pojďme si představit okamžité okno jako nástroj, který vám pomůže urychlit práci v aplikaci Excel VBA.

Kde najít okamžité okno?

Když otevřete editor Excel VB-Editor, může se vám zobrazit okamžité okno jako součást editoru VB. A pokud to ještě nevidíte, můžete to snadno ukázat.

Níže jsou uvedeny kroky k otevření editoru VB a zviditelnění okamžitého okna:

  1. Na pásu karet aplikace Excel klikněte na kartu „Vývojář“ (pokud se karta pro vývojáře nezobrazuje, kliknutím sem se dozvíte, jak ji získat)
  2. Ve skupině kódů klikněte na „Visual Basic“. Tím se otevře editor VB
  3. V editoru VB klikněte v nabídce na možnost „Zobrazit“
  4. Klikněte na Okamžité okno. Tím se okamžité okno zobrazí v editoru VB.

Pokud vám více vyhovují zkratky, níže uvedené kroky urychlíte:

  • Otevření editoru VB - ALT + F11 (to funguje, i když na pásu karet nemáte kartu Vývojář)
  • Chcete -li zobrazit okamžité okno - Ovládání + G (použijte ten, který má otevřený editor VB)

Příklady použití okamžitého okna v aplikaci Excel VBA

Nyní, když víte, kde najít okamžité okno, podívejme se na úžasné příklady, kde jej můžete použít při práci s Excel VBA.

Získejte informace o souborech/sešitech

„Okamžité okno“ je místo, kde můžete klást otázky týkající se pracovních sešitů, a hned vám dá odpověď.

Předpokládejme například, že máte sešit a chcete vědět, kolik listů je v sešitu, můžete do bezprostředního okna napsat níže uvedený kód a stisknout klávesu Enter.

ActiveWorkbook.Sheets.Count

To vám okamžitě sdělí celkový počet listů v aktivním sešitu.

To může být užitečné, když máte sešit se spoustou listů a nemůžete ho počítat ručně (nebo nechcete), nebo když máte sešit, kde jsou skryté listy a chcete znát celkový počet.

? (otazník) by měl být použit před dotazem, aby VBA pochopil, že se ptáte. Pokud tento otazník nepoužíváte, okamžité okno vám podrobnosti/odpověď neposkytne.

Nyní je to opravdu jednoduchý příklad, kdy Okamžité okno vám poskytne nějaké informace a ušetří čas.

Níže uvádíme několik dalších příkladů:

Chcete -li získat název aktivního sešitu

ActiveWorkbook.Name

Chcete -li získat název aktivního listu

? Aktivní list. Jméno

Získání cesty sešitu (adresa, kde je uložen)

? ActiveWorkbook.Path

Pokud tedy potřebujete něco o objektu (například sešit, listy, grafy, tvary, rozsah atd.), Můžete k rychlému získání těchto informací použít okamžité okno.

Získejte informace o Debug.Print

V aplikaci Excel VBA se Debug.Print používá k okamžitému zobrazení hodnoty proměnné v bezprostředním okně.

Níže uvedený kód například okamžitě zobrazí zprávu „Dobré ráno“ v bezprostředním okně.

Sub DisplayMessage () Debug.Print "Good Morning" End Sub

Řádek Debug.Print v kódu můžete použít k rychlému získání některých dat v bezprostředním okně nebo k ladění kódu.

Pokud například chcete získat názvy všech listů v sešitu, můžete použít níže uvedený kód:

Sub GetSheetNames () pro každý sh v ActiveWorkbook.Sheets Debug.Print sh.Name Next sh End Sub

Výše uvedený kód prochází každým listem v aktivním sešitu a v bezprostředním okně dává název.

Debug.Print je užitečná technika pro ladění kódu. Pokud například spouštíte smyčku a chcete zjistit, kolikrát byla smyčka spuštěna, můžete jednoduše umístit řádek Debug.Print, který při spuštění každé smyčky jednoduše zobrazí přírůstková čísla.

Pokud používáte Debug.Print Chcete -li ladit kód, nezapomeňte ho po dokončení odebrat.

Spusťte makro (nebo funkci)

I když existují různé způsoby, jak spustit makro v aplikaci Excel, jedním z rychlých způsobů je použití okamžitého okna.

Ke spuštění makra stačí zadat název makra do bezprostředního okna a stisknout klávesu Enter (kurzor by měl být na konci názvu makra, aby to fungovalo).

Níže je uveden příklad, kde jakmile zadáte název makra v bezprostředním okně, spustí kód (kde kód v bezprostředním okně zobrazí zprávu „Dobré ráno“).

To může být užitečné, když máte kód a chcete zkontrolovat, zda funguje podle očekávání nebo ne. V kódu můžete mít jeden nebo více řádků Debug.Print a spustit makro z bezprostředního okna.

Okamžitě vám zobrazí hodnoty v bezprostředním okně a můžete zkontrolovat, zda vše funguje dobře, nebo ne.

Můžete také použít okamžité okno ke spuštění vlastních funkcí.

Například v níže uvedeném příkladu je vytvořena funkce, která kontroluje, zda je číslo sudé nebo liché. Tuto funkci můžete spustit z bezprostředního okna zadáním funkce s požadovaným argumentem. V tomto případě musíte použít otazník, protože se ptáte, abyste vrátili hodnotu uloženou ve funkci.

Provést řádek kódu (nebo více řádků kódu)

S okamžitým oknem můžete také spustit řádek kódu (nebo více řádků kódů).

Nejlepší na tom je, že můžete jednoduše otevřít okamžité okno, spustit kód a zavřít (na rozdíl od makra, které musíte vložit do okna modulu a poté spustit).

Případ použití, kde to může být užitečné, je, když chcete rychle zobrazit všechny listy v sešitu.

Níže je kód, který můžete umístit do bezprostředního okna a zobrazit všechny listy v sešitu. Umístěte kurzor na konec řádku a jakmile stisknete klávesu Enter, zobrazí se všechny listy.

Pro každý list v tomto sešitu. Listy: List.Visible = True: Další list

Všimněte si, že ačkoli to vypadá jako jeden řádek kódu, skládá se ze tří částí.

Každá část je oddělena znakem: (dvojtečka), který funguje jako zalomení řádku. To vám umožní použít smyčku For Next v bezprostředním okně procházet každý list a změnit vlastnost Visible na hodnotu TRUE (která odkryje jakýkoli skrytý list).

Získejte proměnné hodnoty

Když začnete vytvářet složité kódy VBA, budete se při práci muset spolehnout na proměnné.

Proměnná je něco, co obsahuje hodnotu, a tato hodnota se může změnit, když je kód spuštěn. Ke kontrole těchto hodnot proměnných můžete použít okamžité okno.

Níže je uveden jednoduchý kód, který udává součet prvních 10 kladných celých čísel a ukazuje výsledek v bezprostředním okně.

Sub AddFirstTenNumbers () Dim Var As Integer Dim i As Integer Dim k As Integer For i = 1 To 10 k = k + i Next i Debug.Print i, k End Sub

Jakmile spustíte tento kód, v bezprostředním okně uvidíte níže uvedený výsledek. To vám okamžitě řekne, že kód funguje dobře a dává očekávaný výsledek.

V případě, že nepřináší očekávané výsledky, můžete kód ladit.

Mnoho lidí používá při ladění kódu pole se zprávou. I když to funguje dobře, připadá mi to trochu rušivé, protože mě to přenese do sešitu aplikace Excel a zobrazí okno se zprávou. Na druhou stranu použití okamžitého okna k ladění je mnohem plynulejší a udržuje mě v samotném editoru jazyka Visual Basic.

Poznámka: Pokud pracujete se složitým kódem a máte více proměnných, které potřebujete sledovat, je lepší použít Watch Window. Okno sledování vám umožňuje přidat proměnnou a poté můžete vidět, jak se tato proměnná mění v reálném čase (nebo jak procházíte kódem).

Nastavit hodnotu proměnné při ladění

Toto je trochu pokročilé použití okna Immediate, ale pokud ho použijete, může to při ladění kódu výrazně ušetřit čas.

Okamžité okno můžete použít k nastavení hodnoty proměnné, když spustíte kód v režimu ladění (kde nastavíte zarážku, aby se kód nespouštěl úplně - ale až na konkrétní řádek).

Pokud máte například smyčku, která běží 10krát, a chcete zjistit, co se stane, když smyčka běží po osmé, nemusíte smyčku procházet sedmkrát, abyste se dostali k osmé iteraci. Můžete jednoduše přidat zarážku před smyčku a změnit proměnnou smyčky na 8. Nyní, když spustíte kód, ukáže vám, co se stane, když se smyčky spustí poosmé.

To se stává mnohem užitečnějším, když píšete složité kódy a chcete ladit konkrétní smyčky.

Předpokládejme, že máte kód, jak je uvedeno níže:

Sub UnhideSheets () For i = 1 To worksheets.Count Debug.Print Sheets (i) .Name Next i End Sub

Výše uvedený kód jednoduše uvádí názvy listů všech listů v sešitu v bezprostředním okně.

Pokud nechcete vypisovat názvy všech listů, ale pouze listů za 10. listem, můžete umístit zarážku do druhého řádku smyčky (aby se po tomto řádku nic neprovedlo) a poté změnit proměnná 'i' až 11.

Chcete -li změnit název proměnné v bezprostředním okně, zadejte následující řádek:

i = 11

Tím zajistíte, že prvních 10krát smyčky bude ignorováno a hodnota proměnné bude nastavena na 11.

Ukotvení/odpojení okamžitého okna

Okamžité okno můžete nechat ukotvit v editoru VB - to znamená, že zůstane na jednom místě v editoru VB a pohybuje se s ním.

A můžete jej také nechat ukotven, což znamená, že je nezávislý na editoru VB a lze jej přesouvat jako samostatné okno.

Níže je uvedeno, jak můžete změnit nastavení ukotvení pro bezprostřední okno:

  1. V nabídce editoru VB klikněte na možnost Nástroje
  2. Klikněte na „Možnosti“
  3. V dialogovém okně Možnosti klikněte na poslední kartu - Dokování
  4. Zaškrtněte volbu Immediate Window, aby byla dokovatelná, a zrušte její zaškrtnutí, aby ji bylo možné ukotvit.
  5. Klikněte na OK

Alternativně, pokud je viditelné okamžité okno, můžete také kliknout pravým tlačítkem a změnit jeho dokovatelnou vlastnost.

Ukotvit znamená, že okamžité okno by se stalo součástí stávajícího okna umístěním na určitá místa, například na levé straně okna nebo dole. To umožňuje ukotveným oknům pohyb a velikost dohromady.

Okamžité okno se nezobrazuje - zde je několik způsobů, jak jej získat

Důvodů, proč se to stalo, může být více.

Nejčastějším důvodem, proč nevidíte okamžité okno, je to, že se nezobrazilo. Ve výchozím nastavení nemusí být viditelný a aby se zobrazoval, musíte v nabídce přejít na možnost Zobrazit a kliknout na možnost Okamžité okno. Tím zajistíte, že bude viditelný v editoru VB.

K zobrazení okamžitého okna můžete také použít klávesnici Control + G. Tuto klávesovou zkratku použijte, když jste v editoru VB.

Dalším důvodem, proč se vám bezprostřední okno nemusí zobrazit, je to, že bylo minimalizováno, je nyní tak zavřené, že ho nevidíte (jak je zde uvedeno). Stačí provést rychlé skenování a zkontrolovat, zda někde číhá malý modro/červený čtvereček. Můžete na něj umístit kurzor a zobrazí se vám možnost změnit jeho velikost.

Pokud nevidíte okamžité okno, je zde něco, co fungovalo pro mnoho lidí (často se to stává kvůli změnám rozlišení obrazovky):

  1. Otevřete editor VB
  2. Stisknutím Ctrl-G zvýrazněte okamžité okno (nebo klikněte na možnost Zobrazit v nabídce a poté klikněte na okamžité okno)
  3. Podržte klávesu ALT a poté stiskněte mezerník. Zobrazí se možnosti rozevíracího seznamu pro okamžité okno.
  4. Stiskněte M (pro přesun)
  5. Pomocí kláves se šipkami přesuňte okno
  6. Jakmile zjistíte, kde to je, zvětšete to

Dostal jsem to z fóra a také jsem si všiml, že to samé bylo navrženo jako řešení pro okamžité okno VBA, které se nezobrazuje.

Další věc, kterou můžete zkusit, je zrušit ukotvení okamžitého okna (přejděte na Nástroje -> Možnosti -> Dokování a zrušte zaškrtnutí políčka okamžitého okna). U některých lidí to fungovalo.

Také by se vám mohly líbit následující články:

  • Sešit osobního makra aplikace Excel | Uložit a používat makra ve všech sešitech
  • Smyčky Excel VBA: Pro další, Do while, Do Do, pro každou (s příklady)
  • Práce s listy pomocí Excelu VBA
  • Vytvoření funkce definované uživatelem (UDF) v aplikaci Excel VBA

Vám pomůže rozvoji místa, sdílet stránku s přáteli

wave wave wave wave wave