• VBA Excel: Ukázkové programy. Makra v Excelu. Příklady maker v Excelu. Dialogové okno VBA zpráva msgBox

    Málokdo ví, že první verze oblíbeného produktu Microsoft Excel se objevil v roce 1985. Od té doby prošel několika úpravami a je žádaný miliony uživatelů po celém světě. Mnoho lidí přitom pracuje jen s malým zlomkem možností tohoto tabulkového procesoru a ani si neuvědomují, jak by jim dovednost programování v Excelu mohla usnadnit život.

    Co je VBA

    Programování v Excelu se provádí pomocí programovacího jazyka Visual Basic for Application, který je původně zabudován do nejznámějšího tabulkového procesoru od společnosti Microsoft.

    Odborníci označují jeho výhody za srovnatelnou snadnost vývoje. Jak ukazuje praxe, základy VBA zvládnou i uživatelé, kteří nemají profesionální programátorské dovednosti. Mezi funkce jazyka VBA patří spouštění skriptu v prostředí kancelářských aplikací.

    Nevýhodou programu jsou problémy spojené s kompatibilitou různé verze. Jsou způsobeny tím, že kód programu VBA odkazuje na funkcionalitu, která je přítomna v nové verzi produktu, ale ne ve staré. Nevýhodou je také příliš vysoká otevřenost kódu pro úpravu cizí osobou. Microsoft Office i IBM Lotus Symphony však umožňují uživateli zašifrovat počáteční kód a nastavit heslo pro jeho zobrazení.

    Objekty, kolekce, vlastnosti a metody

    Právě těmto pojmům musí rozumět ti, kdo se chystají pracovat v prostředí VBA. Nejprve musíte pochopit, co je objekt. V Excelu je to list, sešit, buňka a rozsah. Tyto objekty mají zvláštní hierarchii, tzn. jsou si navzájem podřízeny.

    Hlavní je Aplikace, která odpovídá samotnému programu Excel. Pak přijdou Pracovní sešity, Pracovní listy a také Rozsah. Chcete-li například získat přístup k buňce A1 na konkrétním listu, musíte zadat cestu, která bere v úvahu hierarchii.

    Pokud jde o pojem „kolekce“, jedná se o skupinu objektů stejné třídy, která má v záznamu tvar ChartObjects. Její jednotlivé prvky jsou také předměty.

    Dalším pojmem jsou vlastnosti. Jsou nezbytnou vlastností každého předmětu. Například pro rozsah je to Hodnota nebo Vzorec.

    Metody jsou příkazy, které označují, co je třeba udělat. Při psaní kódu ve VBA musí být odděleny od objektu tečkou. Například, jak bude ukázáno později, velmi často se při programování v Excelu používá příkaz Cells(1,1).Select. To znamená, že musíte vybrat buňku se souřadnicemi

    Spolu s ním se často používá Selection.ClearContents. Jeho provedení znamená vymazání obsahu vybrané buňky.

    Jak začít

    Poté je třeba přejít do aplikace VB, pro kterou stačí použít kombinaci kláves „Alt“ a „F11“. Dále:

    • v panelu nabídek v horní části okna klikněte na ikonu vedle ikony Excel;
    • vyberte příkaz Mudule;
    • uložit kliknutím na ikonu s obrázkem;
    • napište, řekněme, náčrt kódu.

    Vypadá to takto:

    podprogram()

    „Náš kód

    Všimněte si, že řádek „Náš kód“ bude zvýrazněn jinou barvou (zeleně), důvodem je apostrof na začátku řádku, který označuje, že následuje komentář.

    Nyní můžete napsat libovolný kód a vytvořit si ho pro sebe nový nástroj ve VBA Excel (viz příklady programů níže). Pro ty, kteří jsou obeznámeni se základy Visual Basicu, to bude samozřejmě mnohem jednodušší. Nicméně i ti, kteří je nemají, se na přání budou moci dostat do pohodlí dostatečně rychle.

    Makra v Excelu

    Tento název skrývá programy napsané v jazyce Visual Basic for Application. Programování v Excelu je tedy vytváření maker s požadovaným kódem. Díky této schopnosti se tabulka Microsoftu sama vyvíjí a přizpůsobuje se potřebám konkrétního uživatele. Poté, co jste přišli na to, jak vytvořit moduly pro psaní maker, můžete začít uvažovat konkrétní příklady programy VBA Vynikat. Nejlepší je začít s nejzákladnějšími kódy.

    Příklad 1

    Úkol: napište program, který zkopíruje hodnotu obsahu jedné buňky a následně zapíše do druhé.

    Pro tohle:

    • otevřete kartu "Zobrazit";
    • přejděte na ikonu "Makra";
    • klikněte na "Zaznamenat makro";
    • vyplňte otevřený formulář.

    Pro zjednodušení ponechte v poli „Název makra“ „Macro1“ a do pole „Klávesová zkratka“ vložte např. hh (to znamená, že program spustíte bleskovým příkazem „Ctrl + h“). Stiskněte Enter.

    Nyní, když záznam makra již začal, obsah buňky se zkopíruje do jiné. Návrat k původní ikoně. Klikněte na "Zaznamenat makro". Tato akce znamená konec programu.

    • znovu přejděte na řádek "Makra";
    • vyberte ze seznamu "Makro 1";
    • klikněte na "Spustit" (stejná akce se spustí spuštěním klávesové zkratky "Ctrl + hh").

    V důsledku toho dojde k akci, která byla provedena během záznamu makra.

    Má smysl vidět, jak kód vypadá. Chcete-li to provést, přejděte zpět na řádek „Makra“ a klikněte na „Upravit“ nebo „Zadat“. Díky tomu se ocitnou v prostředí VBA. Samotný kód makra je ve skutečnosti umístěn mezi řádky Sub Macro1() a End Sub.

    Pokud bylo provedeno kopírování například z buňky A1 do buňky C1, bude jeden z řádků kódu vypadat jako Range(“C1”). Vyberte. V překladu to vypadá jako “Range(“C1”).Select, jinými slovy skočí do VBA Excel, do buňky C1.

    Příkaz ActiveSheet.Paste dokončí aktivní část kódu. Znamená to zaznamenat obsah vybrané buňky (v tento případ A1) do zvýrazněné buňky C1.

    Příklad 2

    Smyčky VBA vám pomohou vytvářet různá makra v aplikaci Excel.

    Smyčky VBA vám pomohou vytvořit různá makra. Předpokládejme, že existuje funkce y=x + x 2 + 3x 3 - cos(x). Chcete-li získat jeho plán, musíte vytvořit makro. To lze provést pouze pomocí smyček VBA.

    Vezměte x1=0 a x2=10 pro počáteční a konečné hodnoty argumentu funkce. Kromě toho musíte zadat konstantu - hodnotu pro krok změny argumentu a počáteční hodnotu pro čítač.

    Všechny příklady maker Excel VBA jsou vytvořeny podle stejného postupu jako výše. V tomto konkrétním případě kód vypadá takto:

    podprogram()

    krok = 0,1

    Do Zatímco x1< x2 (цикл будет выполняться пока верно выражение x1 < x2)

    y=x1 + x1^2 + 3*x1^3 - Cos(x1)

    Buňky (i, 1). Hodnota = x1 (hodnota x1 se zapíše do buňky se souřadnicemi (i,1))

    Buňky (i, 2). Hodnota = y (hodnota y se zapíše do buňky se souřadnicemi (i,2))

    i = i + 1 (počítadlo aktivní);

    x1 = x1 + shag (argument se změní o hodnotu kroku);

    endsub.

    V důsledku spuštění tohoto makra v Excelu získáme dva sloupce, z nichž první obsahuje hodnoty pro x a druhý pro y.

    Poté se na nich sestaví graf způsobem, který je standardní pro Excel.

    Příklad 3

    K implementaci smyček ve VBA Excel 2010, stejně jako v jiných verzích, spolu s již danou konstrukcí Do While se používá For.

    Zvažte program, který vytvoří sloupec. V každé jeho buňce budou zapsány druhé mocniny čísla odpovídajícího řádku. Použití konstrukce For vám umožní napsat jej velmi krátce, bez použití počítadla.

    Nejprve musíte vytvořit makro, jak je popsáno výše. Dále napíšeme samotný kód. Věříme, že nás zajímají hodnoty pro 10 buněk. Kód vypadá takto.

    Pro i = 1 až 10 Další

    Příkaz se překládá do „lidského“ jazyka jako „Opakujte od 1 do 10 v krocích po jedné“.

    Pokud je úkolem získat sloupec se čtverci, například všechna lichá čísla z rozsahu od 1 do 11, pak napíšeme:

    Pro i = 1 až 10 krok 1 Dále.

    Tady krok je krok. V tomto případě se rovná dvěma. Ve výchozím nastavení absence tohoto slova v cyklu znamená, že krok je jediný.

    Získané výsledky je nutné uložit do buněk s číslem (i,1). Potom při každém spuštění smyčky se zvýšením i o hodnotu kroku automaticky vzroste i číslo řádku. Kód bude tedy optimalizován.

    Obecně bude kód vypadat takto:

    podprogram()

    Pro i = 1 až 10 Krok 1 (můžete napsat jednoduše Pro i = 1 až 10)

    Buňky (i, 1). Hodnota = i ^ 2

    Další (v jistém smyslu funguje jako počítadlo a znamená další začátek smyčky)

    endsub.

    Pokud je vše provedeno správně, včetně záznamu a spuštění makra (viz pokyny výše), pak při každém jeho vyvolání se získá sloupec daná velikost(v tomto případě sestávající z 10 buněk).

    Příklad 4

    V každodenním životě je poměrně často potřeba učinit jedno nebo druhé rozhodnutí v závislosti na nějaké situaci. Bez nich se ve VBA Excel neobejdete. Příklady programů, kde je další průběh algoritmu zvolen a není předem určen, nejčastěji používají konstrukci If …Then (pro složité případy) If …Then …END If.

    Zvážit konkrétní případ. Předpokládejme, že potřebujete vytvořit makro pro "Excel", aby byla buňka se souřadnicemi (1,1) zapsána:

    1, pokud je argument kladný;

    0, pokud je argument null;

    -1, pokud je argument záporný.

    Začíná vytváření takového makra pro Excel standardním způsobem pomocí "horkého" Klávesy Alt a F11. Dále je napsán následující kód:

    podprogram()

    x= Cells(1, 1).Value (tento příkaz přiřadí x hodnotu obsahu buňky na souřadnicích (1, 1))

    Pokud x>0, pak Cells(1, 1).Hodnota = 1

    Pokud x=0, pak Cells(1, 1).Hodnota = 0

    Pokud x<0 Then Cells(1, 1).Value = -1

    endsub.

    Zbývá spustit makro a získat požadovanou hodnotu pro argument v Excelu.

    Funkce VBA

    Jak jste si mohli všimnout, programování v nejslavnější tabulce Microsoftu není tak těžké. Zvláště pokud se naučíte používat funkce VBA. Celkem má tento programovací jazyk, vytvořený speciálně pro psaní aplikací v Excelu a Wordu, asi 160 funkcí. Lze je rozdělit do několika velkých skupin. Tento:

    • Matematické funkce. Když je aplikují na argument, získají hodnotu kosinu, přirozeného logaritmu, celé části atd.
    • finanční funkce. Díky jejich přítomnosti a využití programování v Excelu můžete získat efektivní nástroje pro účetnictví a finanční výpočty.
    • Funkce zpracování pole. Patří mezi ně Array, IsArray; lBound; UBound.
    • Funkce VBA Excel pro řádek. To je poměrně velká skupina. Obsahuje například funkce Space pro vytvoření řetězce s počtem mezer rovným celočíselnému argumentu nebo Asc pro převod znaků na kód ANSI. Všechny jsou široce používány a umožňují pracovat s řádky v Excelu a vytvářet aplikace, které práci s těmito tabulkami výrazně usnadní.
    • Funkce převodu datových typů. Například CVar vrátí hodnotu argumentu Expression tím, že jej převede na datový typ Variant.
    • Funkce pro práci s daty. Výrazně rozšiřují ty standardní.Funkce WeekdayName tedy vrací název (celý nebo částečný) dne v týdnu jeho číslem. Ještě užitečnější je časovač. Udává počet sekund, které uplynuly od půlnoci do určitého bodu dne.
    • Funkce pro převod číselného argumentu do různých číselných soustav. Například Oct udává osmičkovou reprezentaci čísla.
    • Formátovací funkce. Nejdůležitější z nich je Formát. Vrací hodnotu typu Variant s výrazem naformátovaným podle pokynů uvedených v deklaraci formátu.
    • atd.

    Studium vlastností těchto funkcí a jejich aplikace výrazně rozšíří záběr Excelu.

    Příklad 5

    Zkusme přejít k řešení složitějších problémů. Například:

    Je uveden papírový doklad zprávy o skutečné výši nákladů podniku. Požadované:

    • vytvořit jeho šablonovou část pomocí tabulky Excel;
    • vytvořte VBA program, který si vyžádá počáteční data k jejich vyplnění, provede potřebné výpočty a vyplní jimi odpovídající buňky šablony.

    Zvažme jedno z řešení.

    Vytvořte šablonu

    Všechny akce se provádějí na standardním listu v Excelu. Volné buňky jsou vyhrazeny pro zadání údajů o názvu spotřebitelské společnosti, výši nákladů, jejich výši a obratu. Vzhledem k tomu, že počet společností (společností), pro které je sestava sestavován, není pevně daný, nejsou buňky pro zadávání hodnot na základě výsledků a celé jméno specialisty předem rezervovány. Pracovní list dostane nový název. Například "Օtchet".

    Proměnné

    Chcete-li napsat program, který automaticky vyplní šablonu, musíte zvolit notaci. Budou použity pro proměnné:

    • NN - číslo aktuálního řádku tabulky;
    • TP a TF - plánovaný a skutečný obrat;
    • SF a SP - skutečná a plánovaná výše nákladů;
    • IP a IF - plánovaná a skutečná úroveň nákladů.

    Označme stejnými písmeny, ale s "prefixem" Itog akumulaci součtu na daném sloupci. Například ItogTP odkazuje na sloupec tabulky s názvem „plánovaný obrat“.

    Řešení problému pomocí programování VBA

    Pomocí zavedeného zápisu získáme vzorce pro odchylky. Pokud je nutné provést výpočet v %, máme (F - P) / P * 100 a ve výši - (F - P).

    Výsledky těchto výpočtů lze nejlépe ihned zapsat do příslušných buněk excelové tabulky.

    Pro skutečné a předpovědní součty se získá pomocí vzorců ItogP=ItogP + P a ItogF=ItogF+ F.

    Pro odchylky použijte = (ItogF - ItogP) / ItogP * 100, pokud se výpočet provádí v procentech, a v případě celkové hodnoty - (ItogF - ItogP).

    Výsledky se opět ihned zapisují do příslušných buněk, není tedy potřeba je přiřazovat k proměnným.

    Před spuštěním vytvořeného programu je potřeba sešit uložit např. pod názvem "Sestava1.xls".

    Tlačítko "Vytvořit tabulku přehledů" stačí stisknout pouze 1krát po zadání informací v záhlaví. Je třeba si uvědomit další pravidla. Zejména na tlačítko "Přidat řádek" je nutné kliknout pokaždé po zadání hodnot pro každou aktivitu do tabulky. Po zadání všech údajů je třeba kliknout na tlačítko "Dokončit" a poté se přepnout do okna "Excel".

    Nyní víte, jak řešit problémy pro Excel pomocí maker. Schopnost používat vba excel (viz příklady programů výše) může být potřeba i pro práci v prostředí aktuálně nejpopulárnějšího textového editoru „Word“. Tlačítka menu můžete vytvářet zejména psaním, jak je znázorněno na samém začátku článku, nebo psaním kódu, díky kterému lze mnoho operací s textem provádět stisknutím funkčních kláves nebo přes záložku „Zobrazit“ a ikonu "Makra".

    MZTools - Velmi užitečná pomůcka pro ty, kteří programují ve VBA. Skutečně šetří čas při psaní kódů. Je důležité, aby utilita zcela zdarma. Zde jsou některé z jeho funkcí:

    • Automatické vkládání obslužných rutin chyb do modulů
    • Vkládání komentářů do hlavičky procedury, s automatickým vkládáním času, názvů modulů a procedur, možnost určit autora procedury
    • Automatické číslování řádků kódu
    • Odstranění číslování z řádků kódu
    • Generování často používaných šablon kódu
    • Vlastní schránka pro 9 operací s možností kódů a následného vložení libovolného z 9 zkopírovaných kódů
    • a mnoho dalších užitečných

    Program je distribuován zdarma.

    (37,3 kiB, 3 708 stažení)


    Oficiální stránky: nenalezeno

    Nástroje VBE – Mnozí z vás museli napsat kód pro formulář a pak si vzpomněli, že některý prvek nebyl pojmenován tak, jak jste chtěli, nebo jste jej jen chtěli přejmenovat kvůli změně v kódu? A samozřejmě se potýkali s problémem, že při přejmenování prvku musíte jít do kódu a tam nahradit všechny odkazy na tento prvek novým názvem. S pomocí tohoto programu tedy můžete přejmenovat jakýkoli formulářový prvek (TextBox, Label atd.) a ovládací prvky ActiveX na listu Excelu a program sám nahradí všechny odkazy ze starého názvu na nový v kódu. Velmi pohodlně.

    Program je distribuován zdarma.

    Začněme jednoduchou procedurou VBA Sub jako příklad. Je uložen v modulu VBA a vypočítává součet prvních sta kladných celých čísel. Na konci výpočtu procedura zobrazí zprávu s výsledkem.

    Sub VBA_Demo()
    « Jednoduchý příklad procedury VBA
    Dim Total As Long, i As Long
    Celkem = 0
    Pro i = 1 až 100
    Celkem = Celkem + i
    Příště já
    MsgBox celkem
    konec sub

    Stáhněte si poznámku ve formátu popř

    Tento postup využívá některé populární jazykové prvky:

    • komentář (řetězec začínající apostrofem);
    • příkaz deklarace proměnné (řádek začínající klíčovým slovem Dim);
    • dvě proměnné (celkem a i);
    • dva operátory přiřazení (celkem = 0 a celkem = celkem + i);
    • cyklická struktura (For–Next);
    • funkce VBA (MsgBox).

    Komentáře

    Pro komentář můžete použít nový řádek nebo vložit komentář za příkaz na stejném řádku.

    V některých případech chcete otestovat proceduru, aniž byste do ní vložili instrukci nebo dokonce celou sadu instrukcí. Místo smazání odpovídajícího příkazu jej stačí převést na komentář přidáním apostrofu na začátek řádku. Poté bude VBA ignorovat příkaz (nebo příkazy) při provádění procedury. Chcete-li převést komentář na prohlášení, stačí odstranit apostrof.

    Proměnné, datové typy a konstanty

    Variabilní je pojmenované místo pro ukládání dat v paměti počítače. Proměnné mohou obsahovat data různých typů. V názvech můžete použít písmena, čísla a některá interpunkční znaménka, ale písmeno musí být vždy zadáno jako první v názvu proměnné. VBA nerozpoznává malá a velká písmena v názvech proměnných. V názvech nemůžete používat mezery ani tečky, ale můžete oddělovat slova podtržítky.

    VBA používá mnoho vyhrazených slov, která nelze použít jako názvy proměnných nebo procedur.

    Překladač VBA usnadňuje život programátorům tím, že automaticky zpracovává jakýkoli typ . To je však plné negativních důsledků – pomalé provádění operací a méně efektivní využití paměti. V důsledku toho může povolení VBA definovat datové typy samostatně, narazit na problémy při provozu velkých nebo složitých aplikací.

    Doporučuje se vybrat datový typ, který používá minimální počet bajtů k ukládání hodnot. Excel používá datový typ Double k provádění matematických výpočtů v listech. Pro zajištění stejné přesnosti výpočtů se doporučuje používat jej v procesu zpracování čísel ve VBA.

    Existují tři typy proměnných rozsahů:

    Práce s konstantami

    Někdy je potřeba použít pojmenovanou hodnotu nebo řetězec, který se nikdy nemění – konstantu. Pokud postup odkazuje více než jednou na určitou hodnotu, jako je úroková míra, měli byste tuto hodnotu deklarovat jako konstantu a ve výrazech použít název konstanty, nikoli její hodnotu. Tato technika nejen činí program čitelnějším, ale také usnadňuje pozdější změnu kódu - stačí změnit pouze jednu instrukci, nikoli několik.

    Operátor Const se používá k deklaraci konstant. Například,

    Const NumQuarters jako celé číslo = 4

    Stejně jako proměnné mají konstanty rozsah. Pokud se pokusíte změnit hodnotu konstanty v kódu VBA, dostanete chybu (která se dá očekávat). Konstanta je konstantní hodnota, nikoli proměnná. V Excelu a VBA existuje řada předdefinovaných konstant, které lze použít, aniž by byly deklarovány. Abyste je mohli použít, nemusíte ani znát význam těchto konstant. Při psaní maker se obvykle používají konstanty, nikoli hodnoty. Následující postup používá vestavěnou konstantu ke změně orientace stránky aktivního listu na šířku:

    Sub SetToLandscape()
    ActiveSheet.PageSetup.Orientation = xlLandscape
    konec sub

    Skutečná hodnota proměnné xlLandscape je 2. Okno Object Browser obsahuje seznam všech konstant Excelu a VBA. Chcete-li otevřít Prohlížeč objektů ve VBE, stiskněte klávesu .

    Ve VBA jsou datum a čas definovány jako hodnoty mezi # znaky

    Const FirstDay As Date = #1/1/2007#
    Konst poledne = #12:00:00#

    Data jsou vždy definována ve formátu měsíc/den/rok, i když je systém nakonfigurován tak, aby zobrazoval data v jiném formátu.

    Operátoři přiřazení

    Operátor přiřazení je příkaz jazyka VBA, který provádí matematický výpočet a přiřazuje výsledek proměnné nebo objektu. V systému nápovědy aplikace Excel je výraz definován jako kombinace klíčových slov, operátorů, proměnných a konstant. Tato kombinace ve výsledku vrátí řetězec, číslo nebo objekt. Výraz může provádět výpočet, zpracovávat znaky nebo testovat data.

    Velký počet operací prováděných ve VBA zahrnuje vývoj (a ladění) výrazů. Pokud umíte vytvářet vzorce v Excelu, pak nebudete mít problém vytvářet výrazy ve VBA. Ve vzorci listu aplikace Excel se výsledek zobrazí v buňce. Na druhou stranu výraz VBA může přiřadit hodnotu proměnné nebo může být použit jako hodnota vlastnosti. Ve VBA je operátor přiřazení rovnítko (=).

    Pole

    Pole je skupina prvků stejného typu, které sdílejí společný název; na konkrétní prvek pole se odkazuje pomocí názvu pole a indexu. Můžete například definovat pole 12 řetězců tak, aby každá proměnná odpovídala názvu měsíce. Pokud pole pojmenujete MonthNames, můžete se na první prvek pole odkazovat jako na MonthNames (0), na druhý prvek jako MonthNames (1) a tak dále až na MonthNames (11).

    Pole obsahující přesně 100 celých čísel můžete deklarovat následovně:

    Dim MyArray(1 Then 100) As Integer

    Ve výchozím nastavení používají pole VBA jako první prvek nulu. Pokud chcete, aby první index všech polí byl 1, musíte před první procedurou modulu deklarovat následující deklaraci: Option Base 1

    Dynamické pole nemá předem definovaný počet prvků. Je deklarováno s prázdnými hodnotami v závorkách: Dim MyArray() As Integer. Před použitím dynamického pole v programu je však nutné použít příkaz ReDim, který sdělí VBA, kolik prvků je v poli. To se často provádí pomocí proměnné, jejíž hodnota není známa, dokud není procedura spuštěna. Pokud je například proměnné x přiřazeno číslo, velikost pole se určí pomocí následujícího příkazu: ReDim MyArray (1 až x).

    Objektové proměnné

    Objektová proměnná je proměnná představující celý objekt, například rozsah nebo list: Dim InputArea As Range. Chcete-li přiřadit objekt k proměnné, použijte klíčové slovo Set: Set InputArea = Range("C16:E16").

    Vestavěné funkce

    VBA má řadu vestavěných funkcí, které zjednodušují výpočty a operace. Například funkce VBA UCase, která převádí řetězec na velká písmena, je ekvivalentní Excel funkce HLAVNÍ MĚSTO Chcete-li použít funkci Excel v příkazu VBA, před název funkce uveďte následující výraz:

    Application.WorksheetFunction

    Je důležité si uvědomit, že nemůžete používat funkce Excelu, pro které VBA poskytuje ekvivalentní funkce. VBA vám například neumožňuje přístup k funkci Excel ROOT (SQRT), protože VBA má vlastní verzi této funkce: Sqr. Takže následující příkaz vyvolá chybu:

    MsgBox Application.WorksheetFunction.Sqrt(123)

    Funkce MsgBox je jednou z nejužitečnějších ve VBA. Mimo jiné je to vynikající nástroj pro ladění, protože můžete kdykoli vložit funkci MsgBox pro pozastavení programu a zobrazení výsledku výpočtu nebo zadání. Funkce MsgBox nejen vrátí hodnotu, ale také zobrazí dialogové okno, ve kterém může uživatel provádět určité akce. Hodnota vrácená funkcí MsgBox je odezvou uživatele na zobrazenou výzvu. Funkci MsgBox lze použít, i když není vyžadována odpověď uživatele, ale je třeba zobrazit zprávu. Syntaxe funkce MsgBox:

    MsgBox(zpráva[, tlačítka] [, název] [, soubor_nápovědy, kontext])

    • Zpráva (povinný argument) – zpráva, která se zobrazí v dialogovém okně.
    • Tlačítka (volitelný argument) – Hodnota, která určuje, která tlačítka a ikony (pokud existují) se zobrazí v okně zprávy. Použijte vestavěné konstanty (například vbYesNo).
    • Název (volitelný argument) – text, který se zobrazí v záhlaví okna zprávy. Ve výchozím nastavení je zobrazen text aplikace Microsoft Excel.
    • help_file (nepovinný argument) - název souboru nápovědy odpovídající oknu zprávy.
    • Kontext (volitelný argument) – kontextový identifikátor tématu nápovědy. Představuje konkrétní téma nápovědy k zobrazení. Pokud použijete argument kontextu, musíte použít také argument souboru nápovědy.

    Výslednou hodnotu můžete přiřadit proměnné, nebo můžete použít funkci bez operátoru přiřazení. V níže uvedeném příkladu je výsledek přiřazen k proměnné Ans.

    Ans = MsgBox(" Pokračovat?" , vbYesNo + vbQuestion, " Řekni mi ")
    If Ans = vbNo Then Exit Sub

    Všimněte si, že hodnota argumentu tlačítka je součtem dvou vestavěných konstant (vbYesNo + vbQuestion). Konstanta vbYesNo způsobí, že se v okně zprávy zobrazí dvě tlačítka, jedno označené Ano a jedno označené Ne. Přidání vbQuestion do argumentu také zobrazí otazník. Jakmile je proveden první příkaz, proměnná Ans nabude jedné ze dvou hodnot reprezentovaných konstantami vbYes a vbNo. V tomto příkladu se postup ukončí po klepnutí na tlačítko Ne.

    Správa objektů a sbírek

    VBA poskytuje dvě konstrukce, které vám pomohou snadněji spravovat objekty a kolekce. Konstrukce With-End With vám umožňuje provádět více operací na jednom objektu. Abyste pochopili, jak to funguje, zvažte následující postup, který upravuje šest vlastností vybraného objektu (za předpokladu, že je vybrán objekt Range).

    SubChangeFontl()
    Selection.Font.Name = " Cambria "
    Selection.Font.Bold = True Selection.Font.Italic = True
    Selection.Font.Size = 12
    Selection.Font.Underline = xlUnderlineStyleSingle
    Selection.Font.ThemeColor = xlThemeColorAccentl
    konec sub

    Tento postup lze přepsat pomocí konstrukce With - End With. Níže uvedený postup funguje úplně stejně jako předchozí.

    SubChangeFont2()
    S Selection.Font
    .Name = "Cambria"
    .Tučné = pravda
    .Italic = pravda
    Velikost=12
    .underline = xlUnderlineStyleSingle
    .ThemeColor = xlThemeColorAccentl
    Konec s
    konec sub

    Předpokládejme, že se rozhodnete provést akci se všemi objekty v kolekci nebo potřebujete vyhodnotit všechny objekty v kolekci a provést akci, když jsou splněny určité podmínky. Toto je ideální situace pro použití konstrukce For Each - Next. Syntaxe konstrukce:

    Pro každého živel v sbírka
    [instrukce]
    [instrukce]
    Další[ živel]

    Například:

    Sub CountSheets()
    Ztlumit položku jako pracovní list
    Pro každou položku v ActiveWorkbook.Worksheets
    Název položky MsgBox
    Další položka
    konec sub

    Následující příklad zavře všechna okna kromě aktivního:

    Sub CloseInactive()
    Dim Book jako sešit
    Pro každou knihu v sešitech
    Pokud Book.Name<>ActiveWorkbook.Name Potom Book.Close
    Další kniha
    konec sub

    Kontrola provádění kódu

    Některé procedury VBA se začnou spouštět od prvních řádků kódu. Někdy je však nutné řídit sled operací přeskakováním jednotlivých příkazů, opětovným provedením určitých příkazů a kontrolou podmínek, aby bylo možné určit další akci, kterou má procedura provést.

    Příkaz GoTo přesměruje provádění programu na novou instrukci, která je označena speciálním způsobem (textový řetězec končící dvojtečkou nebo číslo končící mezerou, specifikované před instrukcí). Následující postup používá k získání uživatelského jména funkci VBA InputBox. Pokud je uživatelské jméno odlišné od Howarda, pak postup skočí na štítek WrongName, kde svou práci ukončí. V opačném případě postup provádí další operace. Příkaz Exit Sub ukončí provádění procedury.

    Sub GoToDemo()
    UserName = InputBox(" Zadejte své jméno: ")
    Pokud UserName<>"Howard" Pak GoTo WrongName
    MsgBox ("Ahoj Howarde...")
    " - [Zde je zadán dodatečný kód] -
    výstupní sub
    WrongName:
    MsgBox "Promiňte, tento postup může spustit pouze Howard."
    konec sub

    Ve skutečnosti je příkaz GoTo potřebný pouze k zachycení chyb (výše uvedený kód je špatný příklad, který by se neměl používat).

    Možná se konstrukce If-Then nejčastěji používá k seskupování příkazů VBA:

    Li stav Pak instrukce_pravda

    Například

    Sub GreetMe()
    Pokud Čas< 0.5 Then
    MsgBox "Dobré ráno"
    Elself Time >= 0,5 a čas< 0.75 Then
    MsgBox "Ahoj"
    Jiný
    MsgBox "Dobrý večer"
    Konec, pokud
    konec sub

    VBA používá systém data a času podobný systému používanému v Excelu. Denní doba je vyjádřena jako zlomkové číslo, například poledne je reprezentováno jako 0,5. Hodnota 0,75 představuje čas 18:00 - tři čtvrtiny dne a okamžik, kdy se den přehoupne do večera. Vnořené struktury If-Then jsou poměrně těžkopádné. Proto se doporučuje používat je pouze pro jednoduché binární rozhodování. Pokud si potřebujete vybrat mezi třemi nebo více možnostmi, pak je vhodné obrátit se na konstrukci Select Case.

    Následující postup používá funkci VBA WeekDay k určení, zda je aktuální den sobota nebo neděle (funkce Weekday vrátí 1 nebo 7). Poté se zobrazí odpovídající zpráva.

    Sub GreetUserlO
    Vyberte případ v pracovní den (nyní)
    Případ 1, 7
    MsgBox "Je víkend"
    Případ Else
    MsgBox "Není víkend"
    Konec Vyberte
    konec sub

    Interpret jazyka VBA ukončí konstrukci Select Case, jakmile je nalezena podmínka True. Pro maximální účinnost by proto měl být nejdříve otestován nejpravděpodobnější případ.

    Cyklus je proces opakování sady instrukcí. Možná víte předem, kolikrát se má smyčka opakovat, nebo je tato hodnota určena proměnnými v programu. Nejjednodušší příklad dobrý cyklus - pro-další:

    Pro čelit = StartŽe konec
    [instrukce]
    [instrukce]
    Další[ čelit]

    Následující postup sečte odmocniny prvních 100 celých čísel:

    Sub SumSquareRoots()
    Dim Sum As Double
    Dim Count As Integer
    Součet = 0
    Pro počet = 1 až 100
    Součet = Součet + Sqr (počet)
    Další počet
    Součet MsgBox
    konec sub

    Hodnota proměnné Step ve smyčce For-Next může být záporná. Následující postup odstraní řádky 2, 4, 6, 8 a 10 v aktivním listu:

    Sub DeleteRows()
    Dim RowNum As Long
    Pro RowNum = 10 až 2 Krok -2
    Řádky(ČísloŘádku).Odstranit
    Další RowNum
    konec sub

    Smyčky For-Next mohou také obsahovat jeden nebo více příkazů Exit For. Když program narazí na tento příkaz, okamžitě opustí smyčku:

    Dílčí ExitForDemo()
    Dim MaxVal As Double
    Dim Row As Long
    MaxVal = Application.WorksheetFunction.Max(Range("A:A"))
    Pro řádek = 1 až 1048576
    If Cells(Row, 1).Value = MaxVal Then
    Konec pro
    Konec, pokud
    další řádek
    MsgBox "Maximální hodnota v řádku" a řádek
    Buňky (Řádek, 1). Aktivujte
    konec sub

    Maximální hodnota ve sloupci se vypočítá pomocí funkce Excel MAX. Tato hodnota je pak přiřazena k proměnné MaxVal. Smyčka For-Next kontroluje každou buňku ve sloupci. Pokud je zadaná buňka rovna MaxVal, příkaz Exit For ukončí proceduru. Před opuštěním smyčky však procedura informuje uživatele o umístění požadované buňky a aktivuje ji.

    Cyklus Do While se provádí, dokud je splněna daná podmínka. Smyčka Do While může mít jednu z následujících dvou syntaxí.

    Dělat
    [instrukce]
    [instrukce]
    smyčka

    Dělat
    [instrukce]
    [instrukce]
    smyčka

    Procedura EnterDates1 zadává data aktuálního měsíce do sloupce listu, počínaje aktivní buňkou:

    SubEnterDatesl()
    " Smyčka Do While, podmínka se kontroluje na začátku
    Ztlumit TheDate jako datum
    TheDate = DateSerial(Rok(Date), Month(Date), 1)
    Dělat během měsíce (datum) = měsíc (datum)
    ActiveCell = TheDate
    TheDate = TheDate + 1
    ActiveCell.Offset(1, 0).Aktivovat
    smyčka
    konec sub

    Tento postup používá proměnnou TheDate, která ukládá data zaznamenaná v listu. První den aktuálního měsíce se používá k inicializaci proměnné. Během provádění cyklu byla zadána hodnota proměnné TheDate aktivní buňka, pak byla tato hodnota zvýšena o jedničku, načež je aktivována další buňka. Cyklus pokračuje, dokud se hodnota měsíce přiřazená proměnné TheDate neshoduje s hodnotou měsíce aktuálního data.

    Smyčky Do While mohou také obsahovat jeden nebo více příkazů Exit Do. Po dosažení příkazu Exit Do se smyčka ukončí a řízení se přenese na příkaz následující za příkazem Loop.

    Struktura cyklu Do Until má mnoho společného s konstrukcí Do While. Jediný rozdíl je v tom, jak se kontroluje stav smyčky. Ve variantě Do While cyklus běží tak dlouho, dokud je podmínka pravdivá. Ve smyčce Do Until běží smyčka, dokud není splněna podmínka. Struktura Do Until může být také reprezentována dvěma druhy syntaxe.

    Na základě knihy. - M: Dialektika, 2013. - S. 211-251.


    Rezervovat: Použití maker v Excelu.

    Stránky: 507

    Formát: DJVU
    Velikost: 8,02 Mb

    Navzdory výkonné funkčnosti, kterou poskytuje uživatelské rozhraní Excel, existuje řada úloh, které lze provádět pouze programově. Kniha "Použití maker v Excelu" je úvodem do programování v Excelu VBA, obsahuje příklady řešení různých praktických problémů, které při práci v Excelu vznikají.Materiál knihy je určen uživatelům Excelu i neznalým programátorům objektový model Vynikat. Spolu s částmi o vývoji maker pro Excel 2002 se jedná o úvodní kurz psaní maker a programů v prostředí Excelu.

    Rezervovat: Intenzivní víkendový kurz programování Excel

    Vydavatel: Dialektika
    Stránky: 421
    Formát: DJVU
    Velikost: 12,6 MB
    Kvalitní: Normální
    Jazyk: ruština
    Žánr: programování
    Rok vydání: 2004
    ISBN: 5-8459-0687-3

    Možnosti aplikace Microsoft Excel se neomezují pouze na práci s datovými tabulkami. Za tabulkovými nástroji stojí výkonný programovací jazyk – VBA (Visual Basic for Applications). Téměř každý uživatel má však možnost naučit se psát programy v jazyce VBA pro řešení nejrůznějších úloh v Excelu - od mechanického provádění výpočtů až po vytvoření systému zadávání dat s vlastními obrazovkovými formuláři a s pravděpodobností revize o správnosti zadávaných hodnot.

    Rezervovat: Programování ve VBA 2002

    Kvalitní: Normální
    Jazyk: ruština
    Žánr: programování

    Kniha obsahuje kurz programování ve Visual Basic for Applications (VBA), což je základní jazyk v aplikacích Microsoft Office (Word, Excel, Access, PowerPoint, FrontPage, Visio atd.). Kniha je určena začátečníkům k programování v prostředí Windows pomocí objektů Word-, Excel-, PowerPoint.Část knihy je věnována vývoji aplikací Office, které využívají databáze uložené v samostatné soubory a na vzdálených serverech.Materiál knihy je dostatečný k osvojení základů jazyka Visual Basic a vytváření jednoduchých maker, která pomáhají automatizovat rutinní opakovanou práci s dokumenty, tabulkami, diagramy, prezentacemi atd., stejně jako k vývoji poměrně složitých aplikací pro zpracování databází pomocí dialogu boxy, které uživateli poskytují nejmodernější nástroje rozhraní.Většina příkladů v knize je věnována aktuálním obchodním problémům, takže kniha bude velmi užitečná pro manažery různých úrovní, která je zjevně určena jak pro Microsoft Office, tak pro vestavěný programovací jazyk VBA.
    Dodatky na konci knihy mohou posloužit jako praktický odkaz při práci s VBA i s běžným VB.

    Rezervovat: Profesionální programování VBA v Excelu 2003
    John Walkenbach
    Vydavatel: Williams
    Formát: PDF
    Velikost: 11 MB
    Kvalitní: Vynikající
    Jazyk: ruština
    Rok vydání: 2005
    ISBN: 5-8459-0771-3
    Kniha je dodávána s diskem.

    V Excelu bylo napsáno mnoho knih. Tato kniha je ale speciální – dívá se na vývoj tabulkových aplikací v širších souvislostech. VBA je pouze jednou složkou vývojového prostředí vlastních aplikací, i když zásadní. Tato kniha vám pomůže pochopit složitost vývoje aplikací pomocí VBA. Popisuje četné jazyk VBA, jeho možnosti a prostředí použití Nejprve vám bude nabídnut přehled možností programu, poté přejdete k definování pojmů programování ve VBA a následně se seznámíte s jazykem samotným. Pokud jste začínající programátor VBA, pak v tomto vydání najdete vše nezbytné informace, který bude vyžadován pro další práce. pokud již máte s VBA záviděníhodnou zkušenost, pak tato kniha obohatí a rozšíří vaše znalosti, doplní je o nové techniky a příklady ze skutečného života.

    Pdf verze upravena a s laskavým svolením .

    Rezervovat: :
    John Walkenbach
    Vydavatel: Wiley
    Formát: PDF
    Stránky: 1308
    Velikost: 11,9 MB
    Kvalitní: Vynikající
    Jazyk: Angličtina
    Rok vydání: 2010
    Tato kniha se zaměřuje na Visual Basic for Applications (VBA), programovací jazyk zabudovaný do Excelu (a dalších aplikací, které tvoří Microsoft Office). Přesněji vám ukáže, jak psát programy, které automatizují různé úkoly v Excelu. Tato kniha pokrývá vše od záznamu jednoduchých maker až po vytváření sofistikovaných uživatelsky orientovaných aplikací a nástrojů. Tato kniha se nevztahuje na společnost Microsoft vizuální studio Nástroje pro Office (VSTO). VSTO je relativně nová technologie, která využívá Visual Basic .NET a Microsoft Visual C#. VSTO lze také použít k ovládání Excelu a dalších aplikací Microsoft Office.
    Toto není kniha pro začínající uživatele Excelu. Pokud nemáte s Excelem žádné zkušenosti, může být lepší volbou Excel 2010 Bible, která poskytuje komplexní pokrytí všech funkcí Excelu. Tato kniha je určena uživatelům všech úrovní.

    Rezervovat: : Profesionální programování VBA v Excelu 2010
    John Walkenbach
    Vydavatel: Dialektika
    Formát: PDF
    Stránky:920
    Velikost: 22,1 MB
    Kvalitní: Vynikající
    Jazyk: ruština
    Rok vydání: 2010 Předmětem této knihy je programovací jazyk Visual Basic for Applications (VBA), který je zabudován do Excelu i do dalších aplikací obsažených v Microsoft Office. Podrobně popisuje tvorbu programů, které automatizují provádění různých úloh v Excelu, a také pokrývá celou řadu dalších témat – od psaní nejjednodušších maker až po vytváření nejsložitějších aplikací a utilit určených pro interakci uživatele. Tato kniha nepopisuje software balíček Microsoft Visual Studio Tools for Office (VSTO). Jde o implementaci relativně nové technologie využívající Visual Basic .NET a Microsoft Visual C#. Technologie VSTO může být také použita pro řízení chování Excel programy a další aplikace společnosti Microsoft kancelář.

    Tato kniha není určena pro začínající uživatele Excelu. Pokud s touto aplikací nemáte žádné zkušenosti, pak si nejprve přečtěte knihu Excel 2010 User's Bible, která podrobně popisuje všechny funkce Excelu (je určena uživatelům všech úrovní).


    Rezervovat:Výukový program VBA
    Garnajev A.
    Vydavatel: bhv
    Stránky: 512
    Formát: html s obrázky v rar
    ISBN: 5-8206-0067-3
    Velikost: 2,22 MB

    Vynikající

    Jazyk: Angličtina
    Rok vydání: 2009

    Microsoft Excel je mnohem víc než jen tabulka. Se zavedením editoru jazyka Visual Basic v Excelu 97, po kterém následovala výrazně zlepšená stabilita Excelu 2000, se Excel stal sám o sobě respektovanou vývojovou platformou. Aplikace Excel se nyní nacházejí vedle aplikací založených na C++, Javě a vývojové platformě .NET jako součást základní sady kritických podnikových aplikací.
    Bohužel je Excel stále příliš často považován za platformu pro nadšence, že lidé vyvíjejí aplikace Excel pouze ve svém volném čase, aby automatizovali drobné úkoly. Zdá se, že krátký pohled na mnoho knih Excel VBA tento názor potvrzuje. Tyto knihy se zaměřují na základy automatizace úloh aplikace Excel pomocí jazyka VBA. Tato kniha je první svého druhu, která poskytuje podrobné vysvětlení, jak používat Excel jako platformu pro vývoj aplikací v profesionální kvalitě.
    Zatímco se zdá, že většina ostatních hlavních vývojových platforem má de facto standardní text, který vysvětluje společně dohodnuté osvědčené postupy pro architekturu, navrhování a vývoj aplikací využívajících tuto platformu, Excel to doposud neměl. Tato kniha se snaží tuto mezeru vyplnit. Autoři jsou profesionální vývojáři Excelu, kteří vytvářejí aplikace založené na Excelu pro klienty od jednotlivců až po největší nadnárodní korporace. Tato kniha vysvětluje přístupy, které používáme při navrhování, vývoji, distribuci a podpoře aplikací, které píšeme pro naše klienty.
    Tuto knihu poskytl uživatel

    Málokdo ví, že první verze populární produkt společnosti Microsoft Excel se objevil v roce 1985. Od té doby prošel několika úpravami a je žádaný miliony uživatelů po celém světě. Mnoho lidí přitom pracuje jen s malým zlomkem možností tohoto tabulkového procesoru a ani neví, jak by jim schopnost programování v Excelu mohla usnadnit život.

    Co je VBA

    Programování v Excelu se provádí pomocí programovacího jazyka Visual Basic for Application, který je původně zabudován do nejznámějšího tabulkového procesoru od společnosti Microsoft.

    Specialisté označují jeho výhody za srovnatelnou snadnost vývoje. Jak ukazuje praxe, základy VBA zvládnou i uživatelé, kteří nemají profesionální programátorské dovednosti. Mezi funkce jazyka VBA patří spouštění skriptu v prostředí kancelářských aplikací.

    • znovu přejděte na řádek "Makra";
    • vyberte ze seznamu „Makro 1“;
    • klikněte na "Spustit" (stejná akce se spustí spuštěním kombinace kláves "Ctrl + hh").

    Výsledkem je akce, která byla provedena v procesu záznamu makra.

    Má smysl vidět, jak kód vypadá. Chcete-li to provést, přejděte zpět na řádek "Makra" a klikněte na "Změnit" nebo "Zadat". Výsledkem je, že skončí v prostředí VBA. Samotný kód makra je ve skutečnosti umístěn mezi řádky Sub Macro1() a End Sub.

    Pokud bylo provedeno kopírování například z buňky A1 do buňky C1, bude jeden z řádků kódu vypadat jako Range(“C1”). Vyberte. V překladu to vypadá jako „Range(“C1“). Vybrat, jinými slovy skočí do VBA Excel, do buňky C1.

    Aktivní část kódu je doplněna příkazem ActiveSheet.Paste. Znamená to zapsat obsah vybrané buňky (v tomto případě A1) do vybrané buňky C1.

    Příklad 2

    Smyčky VBA vám pomohou vytvářet různá makra v aplikaci Excel.

    Smyčky VBA vám pomohou vytvořit různá makra. Předpokládejme, že existuje funkce y=x + x2 + 3x3 - cos(x). Chcete-li získat jeho plán, musíte vytvořit makro. To lze provést pouze pomocí smyček VBA.

    Pro počáteční a konečné hodnoty argumentu funkce se berou x1=0 a x2=10. Dále musíte zadat konstantu – hodnotu pro krok změny argumentu a počáteční hodnotu pro čítač.

    Všechny příklady maker VBA Excel jsou vytvořeny pomocí stejného postupu jako výše. V tomto konkrétním případě kód vypadá takto:

    Do Zatímco x1< x2 (цикл будeт выполняться пока вeрно выражeниe x1 < x2)

    y=x1 + x1^2 + 3*x1^3 - Cos(x1)

    Buňky (i, 1). Hodnota = x1 (hodnota x1 se zapíše do buňky se souřadnicemi (i,1))

    Buňky (i, 2). Hodnota = y (hodnota y se zapíše do buňky se souřadnicemi (i,2))

    i = i + 1 (počítadlo aktivní);

    x1 = x1 + krok (argument se změní o hodnotu kroku);

    V důsledku spuštění tohoto makra v Excelu získáme dva sloupce, z nichž první obsahuje hodnoty pro x a druhý pro y.

    Poté se na nich sestaví graf způsobem, který je standardní pro Excel.

    Příklad 3

    K implementaci smyček ve VBA Excel 2010, stejně jako v jiných verzích, spolu s již danou konstrukcí Do While se používá For.

    Zvažte program, který vytvoří sloupec. V každé jeho buňce budou zapsány druhé mocniny čísla odpovídajícího řádku. Použití konstrukce For vám umožní napsat jej velmi krátce, bez použití počítadla.

    Nejprve musíte vytvořit makro, jak je popsáno výše. Dále si zapište samotný kód. Domníváme se, že nás zajímají hodnoty pro 10 buněk. Kód vypadá takto.

    Pro i = 1 až 10 Další

    Příkaz je přeložen do "lidského" jazyka jako "Opakujte od 1 do 10 v krocích po jedné."

    Pokud je úkolem získat sloupec se čtverci, například všechna lichá čísla z rozsahu od 1 do 11, pak napíšeme:

    Pro i = 1 až 10 krok 1 Dále.

    Tady krok je krok. V tomto případě se rovná dvěma. Ve výchozím nastavení absence tohoto slova v cyklu znamená, že krok je jediný.

    Získané výsledky je nutné uložit do buněk s číslem (i,1). Potom při každém spuštění cyklu se zvýšením i o velikost kroku automaticky naroste číslo řádku. Dojde tedy k optimalizaci kódu.

    Obecně bude kód vypadat takto:

    Pro i = 1 až 10 Krok 1 (můžete napsat jednoduše Pro i = 1 až 10)

    Buňky (i, 1). Hodnota = i ^ 2

    Další (v jistém smyslu hraje roli počítadla a znamená další začátek cyklu)

    Pokud je vše provedeno správně, včetně záznamu a spuštění makra (viz pokyny výše), pak při každém jeho vyvolání se získá sloupec zadané velikosti (v tomto případě sestávající z 10 buněk).

    Příklad 4

    V každodenním životě je velmi často potřeba učinit jedno nebo druhé rozhodnutí v závislosti na nějaké situaci. Bez nich se ve VBA Excel neobejdete. Příklady programů, kde je další průběh provádění algoritmu zvolen a není předem určen, nejčastěji používají konstrukci If …Then (pro složité případy) If …Then …END If.

    Podívejme se na konkrétní případ. Předpokládejme, že potřebujete vytvořit makro pro "Excel", aby byla buňka se souřadnicemi (1,1) zapsána:

    1, pokud je argument kladný;

    0, pokud je argument null;

    1, pokud je argument záporný.

    Vytvoření takového makra pro "Excel" začíná standardním způsobem, pomocí "horkých" kláves Alt a F11. Dále je napsán následující kód:

    x= Cells(1, 1).Value (tento příkaz přiřadí hodnotu x obsahu buňky na souřadnicích (1, 1))

    Pokud x>0, pak Cells(1, 1).Hodnota = 1

    Pokud x=0, pak Cells(1, 1).Hodnota = 0

    Pokud x<0 Then Cells(1, 1).Value = -1

    Zbývá spustit makro a získat požadovanou hodnotu pro argument v Excelu.

    Funkce VBA

    Jak jste si mohli všimnout, programování v nejslavnějším tabulkovém procesoru Microsoftu není tak obtížné. Zvláště pokud se naučíte používat funkce VBA. Celkem má tento programovací jazyk, vytvořený speciálně pro psaní aplikací v Excelu a Wordu, asi 160 funkcí. Lze je rozdělit do několika velkých skupin. Tento:

    • Matematické funkce. Když je aplikují na argument, získají hodnotu kosinu, přirozeného logaritmu, celé části atd.
    • Finanční funkce. Díky jejich přítomnosti a využití programování v Excelu můžete získat efektivní nástroje pro účetnictví a finanční výpočty.
    • Funkce zpracování pole. Patří mezi ně Array, IsArray; lBound; UBound.
    • Funkce VBA Excel pro řádek. To je poměrně velká skupina. Zahrnuje například funkce Space pro vytvoření řetězce s počtem mezer rovným celočíselnému argumentu nebo Asc pro převod znaků na kód ANSI. Všechny mají široké uplatnění a umožňují pracovat s řetězci v Excelu a vytvářet aplikace, které práci s těmito tabulkami výrazně usnadňují.
    • Funkce převodu datových typů. Například CVar vrátí hodnotu argumentu Expression tím, že jej převede na datový typ Variant.
    • Funkce pro práci s daty. Výrazně rozšiřují standardní možnosti Excelu. Funkce WeekdayName tedy vrací název (úplný nebo částečný) dne v týdnu podle jeho čísla. Ještě užitečnější je časovač. Udává počet sekund, které uplynuly od půlnoci do určitého času během dne.
    • Funkce pro převod číselného argumentu do různých číselných soustav. Například Oct vrátí číslo v osmičkové soustavě.
    • Formátovací funkce. Nejdůležitější z nich je Formát. Vrací hodnotu typu Variant s výrazem naformátovaným podle pokynů uvedených v popisu formátu.
    • atd.

    Studium vlastností těchto funkcí a jejich aplikace výrazně rozšíří záběr Excelu.

    Příklad 5

    Zkusme přejít k řešení složitějších problémů. Například:

    Je uveden papírový doklad zprávy o skutečné výši nákladů podniku. Požadované:

    • vyvinout jeho šablonovou část pomocí tabulkového procesoru "Excel";
    • vytvořte VBA program, který si vyžádá počáteční data k jejich vyplnění, provede potřebné výpočty a vyplní jimi odpovídající buňky šablony.

    Zvažme jedno z řešení.

    Vytvořte šablonu

    Všechny akce se provádějí na standardním listu v Excelu. Volné buňky jsou vyhrazeny pro zadání údajů o měsíci, roce, názvu spotřebitelské společnosti, výši nákladů, jejich výši a obratu. Vzhledem k tomu, že počet společností (firem), ve vztahu k nimž je sestava sestavován, není pevně daný, nejsou buňky pro zadávání hodnot na základě výsledků a celé jméno specialisty předem rezervovány. Pracovní list dostane nový název. Například "Օtchet".

    Proměnné

    Chcete-li napsat program, který automaticky vyplní šablonu, musíte zvolit notaci. Budou použity pro proměnné:

    • NN - číslo aktuálního řádku tabulky;
    • TP a TF - plánovaný a skutečný obrat;
    • SF a SP - skutečná a plánovaná výše nákladů;
    • IP a IF - plánovaná a skutečná úroveň nákladů.

    Označme stejnými písmeny, ale s "prefixem" Itog akumulaci součtu na daném sloupci. Například ItogTP - odkazuje na sloupec tabulky s názvem "plánovaný obrat".

    Řešení problému pomocí programování VBA

    Pomocí zavedeného zápisu získáme vzorce pro odchylky. Pokud je nutné provést výpočet v %, máme (F - P) / P * 100 a celkem - (F - P).

    Výsledky těchto výpočtů lze nejlépe ihned zapsat do příslušných buněk excelové tabulky.

    Pro skutečné a předpovědní součty se získá pomocí vzorců ItogP=ItogP + P a ItogF=ItogF+ F.

    Pro odchylky použijte = (ItogF - ItogP) / ItogP * 100, pokud se výpočet provádí v procentech, a v případě celkové hodnoty - (ItogF - ItogP).

    Výsledky se opět ihned zapisují do příslušných buněk, není tedy potřeba je přiřazovat k proměnným.

    Před spuštěním vytvořeného programu je potřeba sešit uložit např. pod názvem "Sestava1.xls".

    Tlačítko "Vytvořit tabulku přehledů" stačí stisknout pouze 1krát po zadání informací v záhlaví. Je třeba si uvědomit další pravidla. Zejména tlačítko "Přidat řádek" musí být stisknuto pokaždé po zadání hodnot pro každý typ aktivity do tabulky. Po zadání všech údajů je třeba kliknout na tlačítko "Dokončit" a poté se přepnout do okna "Excel".

    Nyní víte, jak řešit problémy pro Excel pomocí maker. Schopnost používat vba excel (viz příklady programů výše) může být potřeba i pro práci v prostředí aktuálně nejpopulárnějšího textového editoru „Word“. Tlačítka menu můžete vytvářet zejména psaním, jak je znázorněno na samém začátku článku, nebo psaním kódu, díky kterému lze mnoho operací s textem provádět stisknutím funkčních kláves nebo přes záložku „Zobrazit“ a ikonu "Makra".