Stáhnout prezentaci
Prezentace se nahrává, počkejte prosím
1
Visual Basic for Applications
VBA
2
Makra použití: automatické provádění často se opakujících akcí
posloupnost příkazů, kterou lze automaticky a opakovaně vykonávat v aplikacích MS Office (Word, Excel, PowerPoint, Access) použití: automatické provádění často se opakujících akcí vytváření: nahrání zápis v jazyce Visual Basic kombinace obou způsobů VBA
3
Nahrávání makra po spuštění nahrávání až do jeho ukončení je každá akce (myší i z klávesnice) zaznamenána celou posloupnost akcí je pak možné přehrát tipy pro nahrávání: použití panelu nástrojů VB sledování nahraných akcí v okně editoru VB před začátkem nahrávání makra označení objektů relativní x absolutní odkaz absolutní odkaz => zaznamenávají se absolutní adresy buněk (např. A5, B3) relativní odkaz => zaznamenávají se pohyby vzhledem k počáteční pozici (posun – Offset (počet řádků, počet sloupců)) přepnout lze kdykoliv během nahrávání VBA
4
Spouštění makra automaticky:
po otevření sešitu (makro Auto_Open), po uzavření sešitu (makro Auto_Close) zadanou klávesovou zkratkou vytvořenou položkou nebo tlačítkem v menu (Zobrazit / Panely nástrojů / Vlastní -> Příkazy -> Makra -> Vlastní položka nabídky resp. Vlastní tlačítko + přetažení do menu) kliknutím na grafický objekt: vytvoření objektu kliknutí pravým tlačítkem myši => Přiřadit makro VBA
5
Zápis makra v editoru VBA podprogramy
kód podprogramu obvykle v modulech proměnné: platnost v podprogramu – dim nebo static + deklarace v podprogramu platnost v modulu – dim + globální deklarace platnost v celém projektu (tj. ve všech modulech) – public + globální deklarace procedury: makra = procedury bez parametrů lze nahrát a upravovat mezi klíčová slova Sub a End lze spustit ze seznamu maker (není-li deklarována jako Private) funkce: nelze nahrát mezi klíčová slova Function a End Function množství předdefinovaných funkcí lze vložit do buňky příkazem Vložit / Funkce / Vlastní (není-li deklarována jako Private) VBA
6
Předdefinované funkce
matematické (Abs, Rnd, Sqr, Sin, …) pro práci s řetězci (&, Len, Mid, Ucase, Trim, …) pro převod na daný typ (Cdate, Cbool, …) pro datum a čas (Date, Time, Now, …) test na typ proměnné (IsDate, IsEmpty, …) nutno použít anglické názvy funkcí (např. CountA pro vrácení počtu neprázdných buněk v oblasti místo Počet2) např.: Application.WorkSheetFunction.Min(Range (“A1:C3“)) ‘vrátí minimální hodnotu z oblasti A1:C3 VBA
7
Objekty ve VBA vlastnosti (~ proměnné), metody (~ procedury a funkce)
přístup pomocí tečkové notace některé objekty jsou kontejnery: např.: Application.WorkBook.WorkSheet.Cell odkaz na výběr – Selection (je-li vybráno před spuštěním makra) struktura With: pro úsporu místa při zápisu např.: With Selection.Font .Name = “Arial Black“ .Size = 10 .ColorIndex = 3 End With ‘ nastaví ve vybrané oblasti žluté písmo Arial Black o velikosti 10 klíčové slovo Set uvozuje přiřazovací příkaz proměnných typu objekt Set oblast = Range (“A1:B3“) VBA
8
Kolekce kolekce = soubor objektů stejného typu
název kolekce shodný s objektem + s přístup k prvkům kolekce: indexem WorkSheets(2).Name = “Druhý list“ jménem WorkSheets(“List2“).Name = “Druhý list“ ‘ přejmenování druhého listu v sešitě metoda Count – počet prvků kolekce (nelze nastavit, jen číst) metoda Add – přidá položku do kolekce metoda Delete – odebere položku z kolekce příkaz For Each Dim list As WorkSheet For Each list In WorkSheets … Next list VBA
9
Nejdůležitější objekty ve VBA I.
Application – reprezentuje celou aplikaci Excelu vlastnosti: ActiveWindow (aktuální okno), ActiveWorkBook (aktuální sešit) ThisWorkBook (sešit, ve kterém je zapsán právě prováděný příkaz makra) Windows (kolekce všech otevřených oken v aplikaci) WorkBooks (kolekce všech otevřených sešitů) metody: Calculate (vyvolá přepočítání vzorců ve všech sešitech) Quit (ukončí aplikaci Excelu) Run (spuštění makra z jiného sešitu) Wait (pozastaví spuštěný podprogram na určitou dobu) VBA
10
Nejdůležitější objekty ve VBA II.
WorkBook – otevřený sešit vlastnosti: ActiveSheet (aktuální list) Name (jméno sešitu), FullName (jméno včetně cesty), Path (cesta) Saved (je-li soubor uložen – True) WorkSheets (kolekce tabulkových listů – WorkSheet metody: Close (uzavře sešit) Save, SaveAs (uloží sešit na disk) VBA
11
Nejdůležitější objekty ve VBA III.
WorkSheet – reprezentuje jeden list sešitu vlastnosti: Cells (kolekce všech buněk v sešitu) ActiveSheet.Cells(2,3) ‘ = buňka C2 ActiveSheet.Cells(2) ‘ = druhý řádek Columns (kolekce sloupců) Name (vrací nebo nastavuje jméno listu) Range (vymezuje oblast buněk na listu) Range(“A1:B3“) ‘ jeden parametr – zápis celé oblasti (i násobné) Range(“A1“,“B3“) ‘ dva parametry – rohové buňky vymezují obdélníkovou oblast Range(“A1:C3 B2:D5“) ‘ průnik oblastí A1:C3 a B2:D5 (operátor mezera), tj. oblast B2:C3 Union(Range(“A1:A2“),Range(“B2:B3“)) ‘ sjednocení více souvislých oblastí Range(“Oblast1“) ‘ odkaz na pojmenovanou oblast buněk (příkaz Vložit / Název / Definovat) Rows (kolekce řádků) Visible (skrytí / zobrazení listu) VBA
12
Nejdůležitější objekty ve VBA IV.
WorkSheet – reprezentuje jeden list sešitu metody: Copy (kopíruje list před nebo za uvedený list v sešitě) Delete (odstraní zadaný list ze sešitu) Paste (vloží obsah stránky na parametrem určené (nebo aktuální) místo v sešitě) Select (parametr True vybere list, parametr False změní výběr listu) Window – reprezentuje okno v Excelu vlastnosti: Height, Width, Left, Top WindowState (stav okna – xlMaximized, xlMinimized, xlNormal) Activate (aktivuje okno) Close (uzavře okno) VBA
13
Nejdůležitější objekty ve VBA V.
Range – reprezentuje buňku nebo výběr buněk v tabulce vlastnosti: Adress (adresa dané oblasti) Borders (kolekce orámování buněk) Characters (kolekce znaků uvnitř buňky – objekt Range musí odpovídat jediné buňce) Cells (všechny buňky dané oblasti) Columns (kolekce sloupců) Count (počet buněk v oblasti) End (poslední buňka oblasti ve směru určeném parametrem) Font (objekt, určující vlastnosti písma) Hidden (skrytí / zobrazení buněk) Interior (objekt, určující formát výplně) Offset (vrací objekt typu Range posunutý o požadovaný počet řádků a sloupců) ActiveCell.Offset(1,2).Value = 7 ‘ zapíše hodnotu 7 do buňky ležící o řádek pod a dva sloupce vpravo od aktivní buňky Rows (kolekce řádků) Value (vrací nebo nastavuje hodnotu v buňkách oblasti) VBA
14
Nejdůležitější objekty ve VBA VI.
Range – reprezentuje buňku nebo výběr buněk v tabulce metody: AutoFit (přizpůsobí šířku sloupce) Calculate (přepočítá buňky v oblasti) Clear, ClearContents, ClearFormat (vymaže vše resp. obsah, formáty) Copy (zkopíruje oblast do schránky) Cut (vyjme oblast do schránky) Delete (zruší buňky a provede posun) Find, FindNext, FindPrevious (prohledávání obsahu buněk) Insert (vloží buňky a okolní posune) Paste (vloží obsah schránky) Select (označí oblast buněk) Sort (setřídí oblast dle zadaných podmínek) příklady: ActiveSheet.Range(“A4“) ‘ buňka A4 z aktivního listu WorkSheets(“Prosinec“).Range(“B:B“) nebo Range(“Prosinec!B:B“) ‘ sloupec B z listu Prosinec Pozor! Range(i & “:“ & j).Select ‘ odkaz na i-tý řádek a j-tý sloupec Nelze: Range( “i:j“).Select ani Range(i:j).Select VBA
15
Nejdůležitější objekty ve VBA VII.
Font – objekt slouží k nastavení vlastností písma vlastnosti: Bold, Italic, Underline, … Color (barva písma, možno použít funkci RGB nebo konstanty vbRed,…), ColorIndex (barva písma z palety barev) Name (jméno fontu) Size (velikost písma) Interior – objekt popisuje vnitřek buňky Color, Colorindex (barva výplně) Pattern (vzorek výplně), PatternColor, PatternColorIndex (barva vzorku výplně) Border – objekt popisuje ohraničení buněk Color, ColorIndex (barva ohraničení) LineStyle (styl čáry – plná, čárkovaná, …) Weight (tloušťka čáry) VBA
16
Komunikace s uživatelem I.
MsgBox(prompt, buttons, title, helpfile, context) : stisknuté_tlacítko InputBox(prompt, title, defualt, xpoz, ypoz, helpfile, context ): string zobrazí dialogové okno se vstupní řádkou a dvěma tlačítky OK a Storno ukončí-li uživatel tlačítkem OK, vrací text zapsaný ve vstupní řádce, jinak vrací prázdný řetězec VBA
17
Komunikace s uživatelem II.
Applications.InputBox (prompt, title, default, left, top, helpFile, helpContextId, type):Variant navíc type – typ zadávané hodnoty: 0 – vzorec ve tvaru textu, např. “=A1+A2“ 1 – číslo 2 – textový řetězec 4 – logická hodnota (True nebo False) 8 – adresa oblasti buněk (Range); při přiřazení je nutné použít funkci Set např.: Dim oblast As Range Set oblast = Applications.InputBox(Title:= “Výstup“, Prompt:=“Zadej adresu oblasti“,Type:=8) VBA
Podobné prezentace
© 2024 SlidePlayer.cz Inc.
All rights reserved.