KIVZD cvien 10 Tom Potuk Makra pokraovn Monost

  • Slides: 12
Download presentation
KIV/ZD cvičení 10 Tomáš Potužák

KIV/ZD cvičení 10 Tomáš Potužák

Makra – pokračování • Možností Visual Basicu velké množství – V podstatě jako ve

Makra – pokračování • Možností Visual Basicu velké množství – V podstatě jako ve všeobecném programovacím jazyce (např. Java) • Není účelem předmětu KIV/ZD naučit kompletní Visual Basic – Pouze základy (minule) a několik užitečných funkcí (dnes) – Pro další funkcionality je nejlepší použít Google

Přístup k buňkám I • Objekt Active. Cell – Vrátí aktuálně vybranou buňku •

Přístup k buňkám I • Objekt Active. Cell – Vrátí aktuálně vybranou buňku • Funkce Range(oblast) – Vrátí jednu buňku či celou oblast (objekt Range) podle toho nad čím je volaná (bez ničeho je nad aktivním listem) – Více možností jak oblast definovat, např. Range("A 1"), Range("A 1: B 5"), Range("A 1", "B 5")

Přístup k buňkám II • Funkce Offset(řádky, sloupce) – Volá se nad objektem Range

Přístup k buňkám II • Funkce Offset(řádky, sloupce) – Volá se nad objektem Range – Vrátí objekt Range reprezentující buňku vzdálenou od původní zadaný počet řádek a sloupců (celá čísla – kladná či záporná) – Např. Range("B 1"). Offset(1, 2) ukazuje na buňku D 2, Range("A 1"). Offset(0, 3) ukazuje na buňku D 1 • Funkce Select – Nad objektem Range, označí buňky

Přístup k buňkám III • Seznam Workbooks – Seznam otevřených sešitů Excelu – Sešity

Přístup k buňkám III • Seznam Workbooks – Seznam otevřených sešitů Excelu – Sešity přístupné pod indexem (počínaje 1) nebo pod názvem – Sešit reprezentován objektem Workbook (aktuální sešit v objektu This. Workbook) – Např. Workbooks. Count vrátí počet sešitů, Workbooks(1) vrátí první otevřený sešit, Workbooks(Workbooks. Count) vrátí poslední otevřený sešit, Workbooks ("Sešit 1. xls") vrátí příslušný sešit

Přístup k buňkám IV • Seznam Worksheets – Seznam listů v jednom sešitu Excelu

Přístup k buňkám IV • Seznam Worksheets – Seznam listů v jednom sešitu Excelu – Volá se nad objektem Workbook – Listy přístupné pod indexem (počínaje 1) nebo pod svým názvem – List reprezentován objektem Worksheet (aktivní list Active. Sheet) – Např. This. Workbook. Worksheets(1) vrátí první list aktuálního sešitu, This. Workbook. Worksheets("List 1") vrátí příslušný list

Práce se soubory I • Zobrazení dialogu pro otevření souboru – soubor = Application.

Práce se soubory I • Zobrazení dialogu pro otevření souboru – soubor = Application. Get. Open. File. Name ("Soubory MS Excel (*. xls; *. xlsx), *. xls; *. xlsx", 1, "Otevřít soubor", False) – Funkce soubor neotevře, jen vrátí cestu k souboru (pokud je stisknuto Otevřít) nebo False (pokud je výběr souboru zrušen) – Filtrů pro přípony souborů může být více (v tomto případě jeden), parametr „ 1“ udává, který bude zobrazen v dialogu

Práce se soubory II • Zjištění cesty z aktuálního sešitu – This. Workbook. Path

Práce se soubory II • Zjištění cesty z aktuálního sešitu – This. Workbook. Path • Určení cesty k jinému sešitu ze stejné složky jako je aktuální sešit – This. Workbook. Path & "Jiny. Sesit. xls" • Otevření jiného sešitu – Workbooks. Open (nazev. Souboru) – nazev. Souboru je včetně cesty

Práce se soubory III • Otevření textového souboru – Stejně jako otevření sešitu –

Práce se soubory III • Otevření textového souboru – Stejně jako otevření sešitu – Nemusí se načíst správně (nelze nastavit, jak se má přesně naimportovat do řádek a sloupců) – Lépe využít Query. Tables – dostupné v každém listu, lze nastavit všechny vlastnosti jako při ručním importu je jich hodně nejlépe makro nahrát a pak případně upravit

Náhodná čísla • Funkce Rnd() – Vrátí reálné náhodné číslo z intervalu <0; 1)

Náhodná čísla • Funkce Rnd() – Vrátí reálné náhodné číslo z intervalu <0; 1) – Někdy je před použitím nutné použít příkaz Randomize, aby funkce Rnd() nevracela stále stejné číslo (často funguje i bez toho) • Celá náhodná čísla v intervalu <dolní_mez; horní_mez> – Int(dolni_mez + Rnd() * (horni_mez – dolni_mez + 1)) – Int() ořízne reálné číslo na celé

Převod znaků na čísla a naopak • Hodí se mj. při práci s adresami

Převod znaků na čísla a naopak • Hodí se mj. při práci s adresami • Funkce Chr(kód) – Ze zadaného ASCII kódu znaku (v desítkové soustavě) vytvoří odpovídající znak – Např. Chr(65) = "A" • Funkce Asc(znak) – Vrátí ASCII kód zadaného znaku – Např. Asc("A") = 65

Obecná doporučení • Když lze makro nahrát, není nutné ho programovat • I když

Obecná doporučení • Když lze makro nahrát, není nutné ho programovat • I když makro nelze nahrát, často lze nahrát jeho části, které pak lze využít • Pro neznámé funkcionality použít Google – Mnoho stránek i v češtině – Dát pozor, aby se jednalo o VBA pro Excel (Visual Basic for Applications), standardní VB může být rozdílný • Často mnoho různých řešení problému