Skip to main content

Excel 2000-2007 (Ukázka, strana 99)

Page 1

98

EXCEL 2000–2007 ozornění Up

V kódu nemůžete používat funkce pracovních listů, které mají ekvivalentní funkci ve VBA. Jazyk VBA např. nemůže pracovat s funkcí Excelu SQRT, protože VBA má svoji vlastní verzi této funkce – Sqr. Seznam všech použitelných funkcí najdete v nápovědě Visual Basic for Applications pod heslem „List of Worksheet Functions Available to Visual Basic“, případně je získáte přímo v kódu po napsání tečky za názvem objektu WorksheetFunction. Základní přehled používání funkcí pracovních listů najdete v hesle „Using Microsoft Excel Worksheet Functions in Visual Basic“.

Takže např. sečtení několika hodnot se dá provést dvojím způsobem: a b c ' d ' d

= 10 = 15 = 20 sečtení třech čísel pomocí funkce pracovního listu = Application.WorksheetFunction.Sum(a, b, c) prostý součet třech čísel pomocí operátoru + = a + b + c

Maximální hodnotu z určité oblasti buněk lze získat pomocí funkce Max: ' oblast buněk je nutné zadat jako objekt Range maximum = Application.WorksheetFunction.Max(Range("A2:B5")) A druhou nejvyšší hodnotu vrátí funkce Large: druha_nejvyssi = Application.WorksheetFunction.Large(Range("a2:a8"),2)

6.2 Vestavěné příkazy a funkce obecně Vestavěné příkazy a funkce jsou přímo součástí jazyka VBA a jsou nezávislé na objektech (zatímco metody a vlastnosti lze volat pouze na objektech). Protože vestavěných příkazů není příliš mnoho, je někdy třeba sáhnout i po jiném programovacím arzenálu, který nabízí přímo operační systém Windows. VBA má také k dispozici celou paletu vestavěných funkcí. Mnohé z nich se podobají funkcím pracovních listů Excelu (nebo jsou jejich ekvivalentem). Např. funkce VBA Date, která vrátí aktuální datum, je významově shodná s funkcí pracovního listu v Excelu DNES. Tip

Kde najdete úplný přehled vestavěných příkazů a funkcí? Když v editoru VBA otevřete nápovědu a poté její obsah, hledejte knihu „Visual Basic for Applications Language Reference“. Uvnitř ní najdete knihu s podobným názvem „Visual Basic Language Reference“, a ta již obsahuje seznam vestavěných příkazů (Statements) a funkcí (Functions).

6. Často používané příkazy, funkce a konstrukce Ukázka elektronické knihy, UID: KOS180743


EXCEL 2000–2007

99

6.3 Jak z kódu informovat uživatele – příkaz a funkce MsgBox S příkazem MsgBox jste se již v předchozích příkladech setkali. Jeho účelem je zobrazit okno s určitým textem, který si uživatel přečte a poté okno hlášení uzavře. Příkaz MsgBox můžete používat také při ladění aplikace (ale není to moc pohodlné řešení). Funkce MsgBox se od příkazu liší tím, že vrací hodnotu, která udává, kterým tlačítkem uživatel okno uzavřel. (Zatím jste viděli jen okno hlášení s jedním tlačítkem, ale celkem mohou být až čtyři.) V tomto případě se již MsgBox dá použít i pro řízení průběhu kódu: Můžete např. uživatele upozornit na neočekávanou nebo scházející vstupní hodnotu a požádat ho, aby určil, zda má makro předčasně skončit, vynechat část operace, nebo zda hodnotu zadá uživatel sám. Je možné se uživatele dotázat, zda chce nebo nechce provést nějakou nepovinnou operaci (např. tisk sestavy). Obecně lze funkci MsgBox použít ve všech případech, kdy chcete, aby uživatel stanovil, co se bude dále dít. Tento výběr dalšího směrování kódu uživatel provádí stiskem tlačítka. Funkce MsgBox nabízí tyto kombinace tlačítek: OK OK, Storno Ano, Ne Ano, Ne, Storno Přerušit, Opakovat, Přeskočit Opakovat, Storno Chcete-li během provádění kódu pouze sdělit uživateli nějaké informace, můžete je pomocí vlastnosti Application.StatusBar vypsat do stavového řádku Excelu. Nevýhodou je fakt, že text ve stavovém řádku sleduje jen málokdo.

Tip

Další možnost představuje vlastní formulář s hlášením, který se po určité době sám zavře. Formulářům je věnována samostatná kapitola v druhém dílu knihy. Funkce MsgBox má celkem pět parametrů, z toho jen jeden povinný: MsgBox(prompt [, buttons][, title][, HelpFile, Context ])

Parametr

Význam

prompt (povinný)

Zpráva zobrazená v okně hlášení (textový řetězec).

buttons (volitelný)

Jedna či více vestavěných konstant, které stanoví druh a počet tlačítek v okně, doplňkové ikony a chování okna hlášení.

Často používané příkazy, funkce a konstrukce

V následující tabulce je popsán význam všech parametrů:

6.3 Jak z kódu informovat uživatele... Ukázka elektronické knihy, UID: KOS180743


100

EXCEL 2000–2007

Parametr

Význam

title (volitelný)

Text v titulkovém pruhu. Nezadáte-li ho, je použit standardní text Microsoft Excel.

HelpFile (volitelný)

Název souboru nápovědy, který je přidružen oknu hlášení (v této knize se uvedená problematika neprobírá). Zadává se spolu s následujícím parametrem.

Context (volitelný)

Identifikátor kontextového tématu nápovědy.

V základním tvaru vypadá volání příkazu takto: MsgBox "Nelze vypočítat"

Kromě záhlaví okna můžete ovlivnit podobu okna ještě vhodnou volbou parametru buttons. Vestavěné konstanty, které vám při zápisu příkazu budou nabídnuty, umožňují do okna hlášení přidat barevnou ikonu nebo určit, jaká tlačítka se v okně objeví (to má ale význam jen u funkce MsgBox). Jednotlivé konstanty lze v tomto parametru sčítat – což je nutné např. v případě, kdy chcete v okně zobrazit ikonu, a zároveň přidat další tlačítka. V následujícím řádku je vyvoláno okno hlášení s ikonou Stop a vlastním titulkem: MsgBox "Nelze vypočítat", vbCritical, "Přehled za rok 2007"

Alespoň stručně si vysvětlíme základní vestavěné konstanty, které se mohou objevit v parametru buttons:

Skupina konstant

Hodnoty a význam

Tlačítka v okně hlášení

vbOKOnly, vbOKCancel, vbAbortRetryIgnore, vbYesNoCancel, vbYesNo, vbRetryCancel Kombinují tlačítka OK, Ne (No), Storno (Cancel), Přerušit (Abort), Opakovat (Retry), Ignorovat (Ignore). Například funkce MsgBox("Makro nemůže zapsat údaje", _ vbAbortRetryIgnore)zobrazí toto okno hlášení:

6. Často používané příkazy, funkce a konstrukce Ukázka elektronické knihy, UID: KOS180743


Turn static files into dynamic content formats.

Create a flipbook