Nejlepší průvodce VBA (pro začátečníky), jaké kdy budete potřebovat


Platforma Programování VBA, která běží téměř ve všech produktech sady Microsoft Office, je jedním z nejvýkonnějších nástrojů, které může kdokoli použít ke zlepšení jejich používání.

Tato příručka VBA pro začátečníci vám ukážou, jak přidat nabídku vývojáře do vaší aplikace Office, jak vstoupit do okna editoru VBA a jak fungují základní příkazy a smyčky VBA, abyste mohli začít používat VBA v Excelu, Wordu, Powerpoint, Outlook a OneNote .

Toto Průvodce VBA používá nejnovější verzi produktů Microsoft Office. Máte-li starší verzi, mohou se v porovnání se snímky obrazovky objevit malé rozdíly.

Jak povolit a používat editor VBA

V kterékoli kanceláři produktů používaných v této příručce si můžete všimnout, že nemáte odkazovanou nabídku pro vývojáře. Nabídka pro vývojáře je k dispozici pouze v Excelu, Wordu, Outlooku a Powerpointu. OneNote nenabízí nástroj pro úpravu kódu VBA zevnitř aplikace, ale stále můžete odkazovat na rozhraní OneNote API pro interakci s OneNote z jiných programů sady Office.

Dozvíte se, jak to provést v našem nadcházejícím průvodci Advanced VBA.

  • Chcete-li aktivovat nabídku Developer v kterémkoli kancelářském produktu, vyberte Soubora v levé navigační nabídce vyberte možnost Možnosti.
  • Zobrazí se rozbalovací nabídka Možnosti. V levé navigační nabídce vyberte možnost Přizpůsobit pás karet.
  • Levý seznam obsahuje všechny dostupné nabídky a příkazy nabídky dostupné v této aplikaci Office. Seznam napravo jsou ty, které jsou aktuálně k dispozici nebo aktivovány.

    In_content_1 all: [300x250] / dfp: [640x360]->
    • Vývojář byste měli vidět v seznamu vpravo, ale nebude aktivován. Zaškrtnutím políčka aktivujete nabídku vývojáře.
      • Pokud nevidíte Vývojářdostupný vpravo, změňte vlevo Vybrat příkazyz rozbalovací nabídky na Všechny příkazy. Vyhledejte v seznamu Vývojářa vyberte Přidat >>uprostřed a přidejte tuto nabídku na pás karet.
      • Vyberte OKkdyž jste hotovi.
      • Jakmile je nabídka pro vývojáře aktivní, můžete se vrátit zpět do hlavního okna aplikace a v horní nabídce vyberte možnost Vývojář.
      • Poté vyberte ze skupiny Controls na pásu karet View Codea otevřete okno editoru VBA.
        • Otevře se okno editoru VBA, kde můžete zadat kód, který se naučíte v několika následujících sekcích.
          • Zkuste přidat nabídku Developer do několika aplikací sady Office, které používáte každý den. . Až budete moci otevřít okno editoru VBA, pokračujte k další části této příručky.
          • Obecné tipy pro programování VBA pro začátečníky

            Zjistíte, když se otevře editor VBA, možnosti navigace na levém panelu vypadají odlišně od jedné aplikace Office do druhé.

            Je to proto, že dostupné objekty, kam můžete umístit kód VBA, závisí na tom, jaké objekty jsou v aplikaci. Například v Excelu můžete přidat kód VBA do sešitu nebo listových objektů. V aplikaci Word můžete do dokumentů přidat kód VBA. V aplikaci Powerpoint pouze pro moduly.

            Takže se nemusíte divit různými nabídkami. Struktura a syntaxe kódu VBA je ve všech aplikacích stejná. Jediným rozdílem jsou objekty, na které můžete odkazovat, a akce, které s nimi můžete provést pomocí kódu VBA.

            Než se ponoříme do různých objektů a akcí, které můžete provádět pomocí kódu VBA, pojďme nejprve podívejte se na nejběžnější strukturu a syntaxi VBA, kterou můžete použít při psaní kódu VBA.

            Kam umístit kód VBA

            Když jste v VBA editor, musíte použít dvě rozbalovací pole v horní části editačního okna a vybrat, ke kterému objektu chcete připojit kód a kdy chcete, aby se kód spustil.

            Například v Excel, pokud zvolíte Listya Aktivovat, kód se spustí při každém otevření listu.

            Jiný list akce, které můžete použít ke spuštění kódu VBA, zahrnují, když se změní pracovní list, když je uzavřen (deaktivován), když je spuštěn výpočet listu a další.

            Když přidáte kód VBA do editoru, vždy proveďte nezapomeňte umístit kód VBA na objekt a použít správnou akci, kterou chcete použít ke spuštění tohoto kódu.

            Prohlášení VBA IF

            IF příkaz pracuje ve VBA stejně jako v jiném programovacím jazyce.

            První část příkazu IF se zabývá otázkou, zda je podmínka nebo sada podmínek pravdivá. Tyto podmínky může spojit operátor AND nebo OR, aby je propojil.

            Jedním příkladem by bylo zkontrolovat, zda známka v tabulce je nad nebo pod „úspěšnou“ známkou, a přiřadit průchod nebo selhání stavu do jiné buňky.

            Pokud jsou buňky (2, 2)>75, pak buňky (2, 3) = „předat“ ostatní buňky (2, 3) = „selhat“

            Pokud nechcete, aby byl celý příkaz na jednom řádku, můžete jej rozdělit na více řádků přidáním symbolu „_“ na konec řádků.

            Pokud jsou buňky (2, 2)>75 pak _
            buňky (2, 3) = „projít“ i jinakbuňky (2, 3) = „Selhání“

            Používání této techniky může často usnadnit čtení a ladění kódu.

            VBA pro další smyčky

            Příkazy IF jsou skvělé pro jednotlivá srovnání, jako je výše uvedený příklad pohledu na jednu buňku. Ale co když chcete cyklicky procházet celou řadou buněk a dělat pro každý stejný příkaz IF?

            V tomto případě byste potřebovali smyčku FOR.

            Chcete-li to provést, musíte použít délku rozsahu a přes tuto délku smyčky podle počtu řádků, které obsahují data.

            K tomu je třeba definovat proměnné rozsahu a buněk a procházet nimi. Musíte také definovat čítač, abyste mohli výsledky poslat do příslušného řádku. Váš kód VBA by tedy nejprve měl tento řádek.

            Dim rng As Range, cell As Range
            Dim rowCounter as Integer

            Definujte velikost rozsahu následujícím způsobem.

            Nastavit rng = Range („B2: B7“)
            RowCounter = 2

            Nakonec můžete vytvořit smyčka FOR prochází každou buňkou v tomto rozsahu a provede srovnání.

            For Each cell In rng
            If cell.Value > 75 Then _ Cells(rowCounter, 3) = "Pass" Else _ Cells(rowCounter, 3) = "Fail" rowCounter = rowCounter + 1 Next cell

            Jakmile je spuštěna tato Skript VBA, uvidíte výsledkem je skutečná tabulka.

            VBA Zatímco smyčky

            A smyčka také smyčky prostřednictvím řady příkazů, stejně jako smyčka FOR, ale podmínkou pokračování smyčky je zbývající podmínka true.

            Například byste mohli napsat stejnou smyčku FOR jako výše, jako WHILE smyčku, jednoduše pomocí proměnné rowCounter následujícím způsobem.

            While rowCounter < rng.Count + 2
            If Cells(rowCounter, 2) > 75 Then _ Cells(rowCounter, 3) = "Pass" Else _ Cells(rowCounter, 3) = "Fail" rowCounter = rowCounter + 1 Wend

            Poznámka: Je vyžadován koncový limit rng.Count + 2, protože počitadlo řádků začíná na 2 a musí končit na řádku 7, kde končí data. Počet rozsahů (B2: B7) je však pouze 6 a smyčka while skončí pouze tehdy, když je čítač VELKÉ než čítač - takže poslední hodnota RowCounter musí být 8 (nebo rng.Count + 2).

            Můžete také nastavit smyčku while takto:

            Zatímco rowCounter <= rng.Count + 1

            Můžete pouze zvýší počet rozsahů (6) o 1, protože jakmile proměnná rowCounter dosáhne konce dat (řádek 7), smyčka může být dokončena.

            VBA udělá chvíli a do smyčky

            Do while a Do Dokud nejsou smyčky téměř identické s cykly while, ale fungují trochu jinak.

            • Zatímco smyčkakontroluje, zda podmínka je pravdivá na začátku smyčky.
            • Pohyb smyčky Do-zkontroluje, zda je podmínka po provedení příkazů ve smyčce pravdivá.
            • Do-Until Loopzkontroluje, zda je podmínka po provedení smyčky stále falešná.
            • V tomto případě byste přepsali t he while loop výše, jako Do-while loop.

              Do
              If Cells(rowCounter, 2) > 75 Then _ Cells(rowCounter, 3) = "Pass" Else _ Cells(rowCounter, 3) = "Fail" rowCounter = rowCounter + 1 Loop While rowCounter < rng.Count + 2

              V tomto případě se logika příliš nemění, ale pokud se chcete ujistit, že logika porovnání proběhne po spuštění všech příkazů (což jim umožní spustit všechny bez ohledu na to, co alespoň jednou), pak je správná volba smyčka Do-while nebo Do-Until.

              Příkazy VBA Select Case Case

              Posledním typem logického příkazu, kterému musíte porozumět, abyste mohli začít strukturovat kód VBA, jsou příkazy Select Case.

              Vzhledem k výše uvedenému příkladu řekněme, že chcete mít metodu klasifikace, která není jen úspěšná. Místo toho chcete přiřadit stupeň písmen od A do F.

              Můžete to udělat pomocí následujícího příkazu Select Case:

              For Each cell In rng
              Select Case cell Case 95 To 100 Cells(rowCounter, 3) = "A" Case 85 To 94 Cells(rowCounter, 3) = "B" Case 75 To 84 Cells(rowCounter, 3) = "C" Case 65 To 74 Cells(rowCounter, 3) = "D" Case 0 To 64 Cells(rowCounter, 3) = "F" End Select rowCounter = rowCounter + 1 Next cell

              Výsledná tabulka po spuštění tohoto skriptu VBA vypadá jako ten dole.

              Nyní víte vše, co potřebujete vědět, abyste mohli začít používat VBA v aplikacích sady Microsoft Office.

              Související příspěvky:


              29.01.2020