EXCEL VBA. Programování aplikací v Excelu. Aplikační software na PC



Podobné dokumenty
Registrační číslo projektu: CZ.1.07/1.5.00/ Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

MS Excel makra a VBA

Test z programování v jazyce VBA v rámci předmětu Počítače II Vzorová zadání a vypracování

MS Excel Základy maker. Operační program Vzdělávání pro konkurenceschopnost. Projekt Zvyšování IT gramotnosti zaměstnanců vybraných fakult MU

8 Makra Příklad 4 Excel 2007

Test z programování v jazyce VBA v rámci předmětu Počítače II Vzorová zadání a vypracování

01. HODINA. 1.1 Spuštění programu VB Prvky integrovaného vývojového prostředí. - pomocí ikony, z menu Start.

Různé barvy v grafu pro skutečnost a plán

Tematický celek Proměnné. Proměnné slouží k dočasnému uchovávání hodnot během provádění aplikace Deklarace proměnných

Základy programování Proměnné Procedury, funkce, události Operátory a podmínková logika Objekt Range a Cells, odkazy Vlastnosti, metody a události

9 Úprava maker Příklad 4 Word 2007/ VBA

Makra. Orámování oblasti

Visual Basic for Application

02. HODINA. 2.1 Typy souborů a objektů. 2.2 Ovládací prvky Label a TextBox

Ukázka knihy z internetového knihkupectví

ZŠ ÚnO, Bratří Čapků 1332

OSTRAVSKÁ UNIVERZITA P Ř ÍRODOVĚ DECKÁ FAKULTA [ VAWIN ] Vývoj aplikací ve Windows. RNDr. Miroslav Liška, CSc.

ExcelVBAmodul. Podpora pro výměnu dat automatů MICROPEL s aplikací Microsoft Excel

3MA481 Propojení Accessu a Excelu David Hach

Vytvořil Institut biostatistiky a analýz, Masarykova univerzita J. Jarkovský, L. Dušek, M. Cvanová. 5. Statistica

Velmi stručný návod jak dostat data z Terminálu Bloomberg do R

Tabulkový procesor Microsoft Excel

5a. Makra Visual Basic pro Microsoft Escel. Vytvořil Institut biostatistiky a analýz, Masarykova univerzita J. Kalina

Ovládání Open Office.org Calc Ukládání dokumentu : Levým tlačítkem myši kliknete v menu na Soubor a pak na Uložit jako.

Čtvrtek 3. listopadu. Makra v Excelu. Obecná definice makra: Spouštění makra: Druhy maker, způsoby tvorby a jejich ukládání

Skripta ke školení. Základy VBA. vypracoval: Tomáš Herout. tel:

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

Kurz Databáze. Obsah. Formuláře. Práce s daty. Doc. Ing. Radim Farana, CSc.

Zadání: TÉMA: Zápis algoritmu, čtení textového souboru, porovnání řetězců.

Tabulkový procesor. Orientace textu. O úroveň níž O úroveň výš

DUM 06 téma: Tvorba makra pomocí VBA

8. Formátování. Úprava vzhledu tabulky

3 Makra Příklad 4 Access Ve vytvořené databázi potřebuje sekretářka společnosti Naše zahrada zautomatizovat některé úkony pomocí maker.

4a. Makra Visual Basic pro Microsoft Excel Cyklické odkazy a iterace Makra funkce a metody

OBSAH Úvod do VBA... 6 K čemu VBA... 6 Když VBA nestačí... 6 Historie Visual Basicu... 7 Objektový model, vlastnosti, metody, události a funkce...

K 2 - Základy zpracování textu

KAPITOLA 3 - ZPRACOVÁNÍ TEXTU

DUM 07 téma: Proměnné, konstanty a pohyb po buňkách ve VBA

KAPITOLA 8 TABULKOVÝ PROCESOR

Slíbená princezna. Univerzální ComboBox

PRACOVNÍ SEŠIT MS EXCEL KOMPLET. Optimálním doplňkem stálého vzdělávání jsou elektronické kurzy.

DUM 05 téma: Úvod do VBA for application

Nástroje v InDesignu. Panel nástrojů 1. část. Nástroje otevřeme Okna Nástroje

Nápověda ke cvičení 8

Buňka typy buněk, formát buňky

6. Formátování: Formátování odstavce

Supernova 16 Ovládací zkratky. Akce Funkce Stolní počítač Přenosný počítač Automatické popisování grafických objektů LEVÝ CONTROL + PRAVÁ HRANATÁ

Ukazka knihy z internetoveho knihkupectvi

Programujeme v softwaru Statistica - příklady

PÁS KARET. Autor: Mgr. Dana Kaprálová. Datum (období) tvorby: září, říjen Ročník: sedmý. Vzdělávací oblast: Informatika a výpočetní technika

František Hudek. květen 2012

10 Algoritmizace Příklad 2 Word 2007/ VBA

FORMÁTOVÁNÍ 2. Autor: Mgr. Dana Kaprálová. Datum (období) tvorby: září, říjen Ročník: sedmý. Vzdělávací oblast: Informatika a výpočetní technika

Tematický celek Práce ze soubory. 5.2 Objektový model FSO. - slouží pro ukládání záznamů, - každý ze záznamů obsahu jedno nebo více polí.

Práce v programu Word 2003

Manuál k programu KaraokeEditor

Manuál: Editace textů v textovém editoru SINPRO Úprava tabulek a internetových odkazů, řádkování

Vzorce. Suma. Tvorba vzorce napsáním. Tvorba vzorců průvodcem

Manuál k editoru TinyMCE

Excel tabulkový procesor

Tematický celek 03 - Cvičné příklady

Excel 2007 praktická práce

Microsoft Office PowerPoint 2003

Sada 2 Microsoft Word 2007

MS Excel Lekce 1. Operační program Vzdělávání pro konkurenceschopnost. Projekt Zvyšování IT gramotnosti zaměstnanců vybraných fakult MU

Úvod. Program ZK EANPRINT. Základní vlastnosti programu. Co program vyžaduje. Určení programu. Jak program spustit. Uživatelská dokumentace programu

František Hudek. duben Informační a komunikační technologie MS Excel Úvod do Excelu III

Nový způsob práce s průběžnou klasifikací lze nastavit pouze tehdy, je-li průběžná klasifikace v evidenčním pololetí a školním roce prázdná.

Excel tabulkový procesor

Ukázka knihy z internetového knihkupectví

Zdokonalování gramotnosti v oblasti ICT. Kurz MS Excel kurz 2. Inovace a modernizace studijních oborů FSpS (IMPACT) CZ.1.07/2.2.00/28.

Školení obsluhy PC stručný manuál obsluhy pro používání PC

Excel - záznam, úprava a programování maker. Obsah. Úvod...11

Excel tabulkový procesor

MS Word základy. Úvod do MS Word. Nový dokument. Vytvoření zástupce programu na ploše. Otevření dokumentu a popis prostředí: Ukládání souboru:

Základní vzorce a funkce v tabulkovém procesoru

Zdokonalování gramotnosti v oblasti ICT. Kurz MS Excel kurz 4. Inovace a modernizace studijních oborů FSpS (IMPACT) CZ.1.07/2.2.00/28.

Základní práce s Excelem 2007

Excel - databáze. Opakování. Soubor, který jsme upravovali. Upravený soubor. Hrubá mzda = počet kusů * Kč za kus B6=B4*B5

Kapitola 11: Formuláře 151

Příloha 6. Palety nástrojů

Prostředí Microstationu a jeho nastavení. Nastavení výkresu

MsgBox, InputBox, FileDialog, Pravomoci vlastních funkcí (UDF) Function TESTOVKA() 'dialog (MsgBox) TESTOVKA = MsgBox("Baf!

Níže uvedená tabulka obsahuje technické údaje a omezení aplikace Excel (viz také článek Technické údaje a omezení aplikace Excel (2007).

25. TVORBA HTML DIALOGŮ PRO PEVNÉ TVARY

UniLog-D. v1.01 návod k obsluze software. Strana 1

Úvod do problematiky ÚPRAVY TABULKY

Obsah. Úvod 15. Úvod do Excelu Práce se sešity 35

Práce s programem IIS Ekonom

INFORMATIKA WORD 2007

Tabulky. V té to ka pi to le:

ZŠ ÚnO, Bratří Čapků 1332

Nápověda ke cvičení 5

Postupy práce se šablonami IS MPP

Microsoft Office Excel 2003

Registrační číslo projektu: Škola adresa: Šablona: Ověření ve výuce Pořadové číslo hodiny: Třída: Předmět: Název: MS Excel II Anotace:

Tvorba www-stránek. Příkazy jazyka HTML. Budeme pracovat následovně: Základní struktura webové stránky. Příkazy sekce HEAD

Transkript:

Programování aplikací v Excelu Aplikační software na PC EXCEL VBA RNDr. Jan Preclík preclik@ksvi.mff.cuni.cz Objektem v Excelu se rozumí cokoli, co může být programováno nebo řízeno Excel obsahuje přibližně 130 objektů se kterými můžeme pracovat Každý objekt má své vlastnosti (~proměnné) a metody (~procedury, funkce) Pomocí VBA nastavujeme tyto vlastnosti a voláme metody těchto objektů za účelem jejich řízení Vlastnosti objektů Vlastnosti objektů Přístup k vlastnostem objektu tečková notace <objekt>.<jméno vlastnosti> Některé objekty mají předdefinované (default) vlastnosti (ty není třeba explicitně vypisovat) Application.WorkBooks("Makra.xls"). _ WorkSheets("List1").Range("A1").Value = 10 Vlastnosti je možné buď nastavovat nebo naopak zjišťovat jejich hodnoty Existují vlastnosti, které jsou určeny buď jen pro čtení nebo jen pro zápis nebo Range("A1").Value = 10 Range("A1") = 10 Metody objektů VBA objekty -2- -3- -4- -5- -6- Volání metod objektu tečková notace <objekt>.<jméno metody> Selection.Copy Range("A1").Copy Range("B1") Metody mohou mít různý počet povinných i nepovinných parametrů (viz. nápověda pro VBA) Pro přiřazení hodnoty proměnné typu objekt je nutno použít klíčové slovo Set hodnota Nothing nenastavená objektová proměnná Pro uvolňování paměti; objekt je uvolněn, pokud všechny na něj ukazující proměnné mají hodnotu Nothing Rovnost odkazů na objekty Is Dim Oblast As Range Set Oblast = Range("A1:B3") If Oblast Is Nothing Then End If 1

Kolekce objektů Kolekce objektů Kolekce = soubor objektů stejného typu Název kolekce je shodný s názvem objektu + s Přístup k prvkům kolekce Indexem (indexováno od 1) Worksheets(2).Name = "Druhý list" Jménem Worksheets("List2").Name = "Druhý list" Pomocí metody Item Worksheets.Item(2).Name = "Druhý list" Metoda Count počet prvků kolekce nelze nastavit hodnotu, jen číst Metoda AddItem přidá položku do kolekce -7- -8- -9- - 10 - Kolekce a cyklus For Each Cyklus přes všechny prvky kolekce Dim List As Worksheet For Each List In Worksheets List.Name = List.Name & List.Name Next List 'řešení ne ve stylu VBA (ala Pascal) Dim I As Integer For I = 1 To Worksheets.Count Worksheets.Item(I).Name = _ Worksheets.Item(I).Name & _ Worksheets.Item(I).Name Next I Spouštění makra Automaticky Při otevření sešitu (AUTO_OPEN) Při uzavření sešitu (AUTO_CLOSE) Klávesová zkratka (Nástroje / Makro / Makra / Možnosti) Seznam dostupných maker (Nástroje / Makro / Makra / Spustit) Vlastní položka menu přetáhnout do menu (Zobrazit / Panely nástrojů /Vlastní/Příkazy / Makra) Vytvoření nové nabídky/podnabídky v menu (Zobrazit / Panely nástrojů /Vlastní/Příkazy / Nová nabídka) - 11 - - 12 - Spouštění makra Vlastní tlačítko přetáhnout na lištu (Zobrazit / Panely nástrojů /Vlastní/Příkazy / Makra) Vytvoření nového panelu nástrojů (Zobrazit / Panely nástrojů / Vlastní / Panely nástrojů / Nový) Kliknutím na libovolný grafický objekt (místní nabídka objektu / Přiřadit makro) Ladění makra Editor jazyka Visual Basic, panel nástrojů Ladění (Debug) Spustit (Run Sub/Userform) Stop (Reset) Přepnout zarážku (Toggle breakpoint) Rychlé kukátko (Quick Watch) Pro proměnnou na které je kurzor Lze přidat do Watch 2

Ladění makra - 13 - Ladění makra - 14 - Okno kukátek (Watches) Možno modifikovat hodnotu i při běhu Krokovat s vnořením (Step Into) Při krokování sestupuje do podprogramů Krokovat bez vnoření (Step Over) Nekrokuje podprogramy Krok ven (Step Out) Provedení všech příkazů až do konce podprogramu a jeho opuštění Okamžité okno (Immediate Window) Příkaz na řádku se provede po stisku klávesy Enter Pro ladění apod. Zásobník volání právě aktivních procedur (Call Stack) Hierarchie objektů v Excelu Objekt Application Reprezentuje celou aplikaci Excelu ActiveWindow aktuálníokno ActiveWorkbook aktuální sešit Caption nadpis Cursor ukazatel myši CutCopyMode FALSE = zrušení mihotajícího se rámečku při kopírování Dialogs kolekce dialogových oken DisplayAlerts potlačí zobrazení některých hlášení DisplayFormulaBar skrytířádku vzorců DisplayStatusBar skrytístavového řádku - 16 - Objekt Application - 17 - Objekt Application - 18 - OperatingSystem název a verze oper. systému StandardFont StandardFontSize StatusBar vrací nebo nastavuje text na stavové řádce, FALSE = vrací řízení Excelu ThisWorkbook sešit ve kterém je zapsán právě prováděný příkaz makra Windows kolekce všech otevřených dceřiných oken v aplikaci WindowState stav okna (xlmaximized, xlminimized, xlnormal) Workbooks kolekce otevřených sešitů Calculate přepočítání vzorců ve všech sešitech FindFile spustí akci otevírání souboru včetně dialogového okna Quit ukončení aplikace Excel Run umožňuje spustit makro z jiného excelovského sešitu Wait přeruší makro do času uvedeného jako parametr 3

Objekt Workbook - 19 - Objekt Workbook Reprezentuje právě otevřený sešit ActiveSheet aktuální list FullName jméno souboru včetně cesty Name jméno sešitu Names kolekce pojmenovaných oblastí buněk Path cesta, kde je soubor uložen (bez posledního oddělovače) Saved True, je-li soubor uložen Sheets kolekce listů v sešitě, obsahuje objekty typu Chart a Worksheet Worksheets kolekce tabulkových listů, objektů typu Worksheet Activate aktivuje daný sešit Close uzavírá sešit Protect uzamčení sešitu, lze zadat heslo jako parametr Save uloží sešit na disk SaveAs UnProtect odemkne daný sešit Objekt Worksheet -21 - Objekt Worksheet Reprezentuje jeden list sešitu Cells kolekce všech buněk sešitu ActiveSheet.Cells(2,3) '= buňka C2 (řád., sloup.) ActiveSheet.Cells(2) '= druhý řádek Columns kolekce sloupců Name vrací nebo nastavuje jméno listu Names kolekce pojmenovaných oblastí buněk Range parametr vymezuje požadovanou oblast Rows kolekce řádků UsedRange vrací objekt typu Range reprezentující využitou oblast listu Visible skrytí listu Activate aktivuje daný list Calculate přepočítává všechny buňky v listě Copy kopíruje list před nebo za uvedený list v sešitě Delete odstraní zadaný list ze sešitu Paste vloží obsah schránky na parametrem určené (nebo aktuální) místo v sešitě, nelze použít na vkládání objektů z jiných aplikací PasteSpecial vloží obsah schránky, možno určit další podmínky vložení PivotTables kolekce kontingenčních tabulek Objekt Worksheet Objekt Window -20- -22- -23- -24- Protect uzamkne list Unprotect odemkne daný list Reprezentuje okno v Excelu Caption nastavuje nebo vrací jméno okna DisplayFormulas zobrazuje vzorce v buňkách DisplayGridlines nastavuje zobrazení mřížky DisplayHeadings nastavuje, zda bude zobrazeno záhlaví řádků DisplayWorkbookTabs v sešitě se zobrazí záložky listů ScrollColumn nastaví nebo zjistí sloupec, který je zobrazen u levého okraje okna dokumentu ScrollRow stejné jako u sloupce 4

Objekt Window Objekt Window Height vrací nebo nastavuje výšku okna v bodech Left nastavuje nebo vrací polohu okna od levého okraje využitelné oblasti Width, Top WindowState mění stav okna Zoom nastavuje nebo vrací zvětšení okna v procentech Activate aktivuje okno Close uzavře okno LargeScroll posunuje okno po stránkách SmallScroll posunuje obsah okna po jednotlivých řádcích nebo sloupcích Reprezentuje buňku nebo výběr buněk tabulky Dva zápisy syntaxe jeden parametr zápis celé oblasti: Range("A1:B3") dva parametry rohové buňky vymezují oblast: Range("A1","B3") Operátor průniku mezera průnik oblastí A1:C3 a B2:D5, tj. oblast B2:C3 Range("A1:C3 B2:D5") Sjednocení více souvislých oblastí UNION (vrací objekt Range) Union(Range("A1:A2"), Range("B2:B3")) Lze použít i lib. pojmenovanou oblast buněk (Vložit / Název / Definovat) Range("Oblast1") -25- -26- -27- -28- -29- -30- Address obsahuje adresu dané oblasti, zapsanou ve tvaru určeném parametrem Borders kolekce orámování buněk Characters kolekce znaků uvnitř buňky, objekt Range musí odpovídat jediné buňce Cells objekt typu Range reprezentující všechny buňky oblasti Column vrací číslo prvního sloupce v první oblasti Column(Range("C2:E4,A2:B5")) ' = 3 Columns kolekce sloupců ColumnWith šířka sloupce CurrentRegion vrací objekt Range aktuální oblasti, to je oblast ohraničená prázdným řádkem a sloupcem nebo okraji tabulky Count počet buněk v oblasti End poslední buňka aktuální oblasti ve směru určeném parametrem, podobně jako klávesová zkratka CTRL+šipka EntireColumn, EntireRow reprezentuje celý řádek, či sloupec ve vybrané oblasti Font objekt určující vlastnosti písma 5

Formula vrací nebo nastavuje vzorec - anglické názvy funkcí FormulaLocal vrací nebo nastavuje vzorec - názvy funkcí dle lokalizace nainstalovaného Excelu a oddělovače nastavené v ovládacím panelu Hidden skrýt/zobrazit buňky, lze použít pouze na celé sloupce a řádky HorizontalAlignment zarovnání textu ve vodorovném směru Interior objekt určující formát výplně buňky Name vrací nebo nastavuje jméno buněk -31 - NumberFormat formát čísla, nutno zadat anglický zápis, nezávislé na lokalizaci instalace Excelu NumberFormatLocal formát čísla, závislé na lokalizaci Offset vrací objekt typu Range posunutý o požadovaný počet řádků a sloupců ActiveCell.Offset(1,0).Value = 7 zapíše hodnotu 7 do buňky ležící hned pod buňkou aktivní pokud se tímto způsobem dostanu na neexistující buňku (mimo oblast listu), dojde k běhové chybě Resize objekt typu Range zmenšený / zvětšený dle parametrů oproti původnímu objektu Row vrací číslo prvního řádku v první oblasti Rows kolekce řádků Value vrací nebo nastavuje hodnotu v buňce nebo v oblasti buněk VerticalAlignment zarovnání textu ve svislém směru Activate aktivuje jednu buňku ve vybrané oblasti AutoFit přizpůsobí šířku sloupce AutoFilter nastaví automatický filtr Calculate přepočítá buňky ve vybrané oblasti Clear, ClearContents, ClearFormat... - vymaže vše, obsah, formáty... Copy kopíruje oblast buněk do schránky Cut kopíruje oblast buněk do schránky nebo na určené místo, na původním místě vymaže obsah Delete zruší buňky a provede posun buněk v okolí Objekt Font -32- -33- -34- -35- -36- Find, FindNext, FindPrevious prohledávání obsahu buněk Insert vloží buňky a provede posun buněk v okolí PasteSpecial vloží obsah schránky na místo dané objektem Select označí oblast buněk Sort setřídí oblast podle zadaných podmínek Reprezentuje font (buněk, oblasti, objektu ) Bold, Italic, Underline... tučné, kurzíva, podtržené... Color barva písma, možno použít funkci RGB nebo konstanty vbred, vbgreen... ColorIndex vrací nebo nastavuje barvu písma z palety barev Name jméno fontu Size vrací nebo nastavuje velikost písma v bodech 6

Objekt Border Objekt Interior Reprezentuje okraj (ohraničení) buněk Color ColorIndex LineStyle styl čáry (plná, čárkovaná...) Weight tloušťka čáry Reprezentuje vnitřek buněk Color barva výplně ColorIndex barva vybíraná z palety InvertIfNegative booleovská, zobrazení v doplňkových barvách Pattern vzorek výplně buňky PatternColor barva vzorku PatternColorIndex číslo barvy vzorku z palety barev Dialogy Dialogy MsgBox (prompt,buttons,title,helpfile, context): stisknuté_tlačítko funkce InputBox (prompt,title,default, xpoz,ypoz,helpfile,context): string If MsgBox("Chcete ukončit práci makra?", _ vbyesno + vbquestion, "Konec") = vbyes Then Exit Sub End If zobrazí dialogové okno se vstupní řádkou a se dvěma tlačítky OK a Storno, pokud uživatel ukončí tlačítkem OK, vrací text zapsaný ve vstupní řádce, jinak vrací prázdný řetězec Dialogy -41 - Uživatelské formuláře -37- -38- -39- -40- -42- metoda Aplications.InputBox (prompt, title,default,left,top,helpfile, helpcontextid,type):variant Jako funkce InputBox ale má více možností 'Načtení oblasti od uživatele (včetně 'možnosti výběru myší) Dim Oblast As Range Set Oblast = Application.InputBox(Prompt:= _ "Zadej adresu zpracovávané oblasti.", _ Type:=8) ~ tvorba vlastních dialogových oken Postup při tvorbě vložíme nový formulář v editoru jazyka VBA volba Insert / UserForm v okně Properties lze měnit vlastnosti formuláře (jméno ) na formulář přidáme ovládací prvky a nastavíme v okně Properties jejich vlastnosti ošetříme události generované ovládacími prvky (tj. napíšeme příslušné procedury) 7

Uživatelské formuláře Uživatelské funkce použitelné na listu Postup při tvorbě (pokračování) napíšeme proceduru, které formulář zobrazí UserForm1.Show na konec formulář uvolníme: UnLoad UserForm1 potom se veškeré nastavení na něm zničí nebo pouze schováme: UserForm1.Hide s nastaveními na formuláři lze i po schování pracovat Funkce, která má být použitelná v buňce na listu, nesmí být deklarovaná jako Private! Funkce nesmí manipulovat s oblastmi, hodnotami buněk na listě! Uživatelské funkce použitelné na listu Uživatelské funkce použitelné na listu -43- -44- -45- -46- Řízení volání funkce = kdy se bude funkce na listu přepočítávat volatile přepočítává se při každé změně na listu nonvolatile přepočítává se pouze pokud se změní buňky na které se odkazuje Function XY (Obl As Range) As Integer Application.Volatile ( False )... End Function Určení kategorie funkce do jaké kategorie bude naše funkce v dialogu Vložit funkci zařazena (standardně kategorie Vlastní) při otevření sešitu je nutno provést kousek VB kódu (vloží se k objektu Workbook, resp. Tento_sešit), který funkci zařadí do příslušné kategorie (0 = vše, 1 = finanční,, 14 = vlastní) Private Sub Workbook_Open() Application.MacroOptions Macro:="Obrat", _ Category:=7 End Sub 8