Programování funkcí v Excelu
EXCEL : spuštění VB Používá se programovací jazyk Visual Basic Spuštění Visual Basicu se provede z Excelu NÁSTROJE – MAKRO – EDITOR JAZYKA VISUAL BASIC pak INSERT – MODULE do okna modulu se zapíše programový popis funkce a Visual Basic se zavře Vytvořená funkce se v Excelu používá stejně jako standardní funkce, je zařazena v kategorii Vlastní
EXCEL : struktura funkce Function jméno (vstupní proměnné) typ funkce deklarace příkazy jméno = výsledek End Function
EXCEL : struktura funkce Jednoduché příklady Function PULKA (X As Double) As Double PULKA = X/2 End Function Function PYTHAG (A As Double, B As Double) As Double Dim V As Double V = SQR(A*A+B*B) PYTHAG = V End Function
EXCEL : proměnné a typy Proměnná – dočasné pměťové místo pro uložení dat – je určena jménem a typem – zavádí se deklarací Příklad: Dim V As Double V Přiřazení – příkaz, kterým se do proměnné vloží hodnota V 2.5 Příklad: V = 2.5 V = A/2
EXCEL : proměnné a typy Identifikátor – jméno proměnné, maximálně 255 znaků – obsahuje písmena a číslice – nesmí obsahovat mezeru, začíná číslicí Příklady: V, A11, SOUCET, PocVyskytu, pocet_vyskytu
EXCEL : proměnné a typy Typy proměnných Integer, Long – celá čísla (2B,4B) 123 Single, Double – reálná čísla (4B,8B) 1.234 String – textový řetězec ”text” Boolena – logická hodnota TRUE, FALSE Date – datum a čas ”12/31/2007 23:59:59 ” Variant – libovolný datový typ, podle posledního přiřazení
EXCEL : proměnné a typy explicitní Deklarace proměnné implicitní Explicitní dek. – provádí se před prvním použitím proměnné Dim jméno As typ Příklady: Dim P1, P2, P3 As Integer Dim P (P1,P2,P jsou Variant) Implicitní dek. – přímé použití proměnné v programu, proměnná je pak typu Variant
EXCEL : proměnné a typy Konstanty – nemění hodnotu v průběhu programu – zpřehledňují program Deklarace konstanty Const jméno = hodnota Příklad: Const Mesice = 12
EXCEL : proměnné a typy Výrazy (podobné jako v Excelu samotném) – obsahují konstanty, proměnné, operátory, závorky a volání funkcí – vyhodnocují se podle priority 1. Funkce Abs, Atan, Cos, Exp, Rnd, Sgn, Sin, Str, Tan, Val, Sqr 2. Matematické ^ – * / \ Mod + – 3. Relační = <> < > >= <= 4. Logické And Or Not Xor Příklady: Hodnota = 2/(7*Sin(x)) Porovnani = (2<3)And(7<5) X = X + 1
EXCEL : podmíněný příkaz Podmíněný příkaz neúplný příkazy podmínka + – If podmínka Then příkazy EndIf Příklad: Function PODIL (X As Double, Y As Double) As Double If X<>0 Then PODIL = Y/X EndIf EndFunction
EXCEL : podmíněný příkaz Podmíněný příkaz úplný If podmínka Then příkazy1 Else příkazy2 EndIf příkazy2 příkazy1 podmínka + – Příklad: Function TEST (A As Long) As String If A Mod 2 = 0 Then TEST = ”Sude” Else TEST = ”Liche” EndIf EndFunction
EXCEL : podmíněný příkaz Podmíněný příkaz – nejobecnější tvar If podmínka1 Then příkazy1 ElseIf podmínka2 Then příkazy2 … Else příkazyX EndIf lze vypustit Poznámka: příkaz If je možno zapsat na jeden řádek, dílčí příkazy se odělují dvojtečkou, nepíše se EndIf.
EXCEL : podmíněný příkaz Příklad: Function DAN (PRIJEM As Double) As Double If Prijem<=91440 Then Dan=Prijem*0.15 ElseIf Prijem<=183000 Then Dan=13716+((Prijem-91440)*0.2) ElseIf Prijem<=274200 Then Dan=32028+((Prijem-183000)*0.25) ElseIf Prijem<=822600 Then Dan=54828+((Prijem-274200)*0.32) Else Dan=230316+((Prijem-822600)*0.4) End If End Function
EXCEL : cyklus For Cyklus s daným počtem opakování Prom=začátek..konec příkazy Prom=začátek..konec DalšíProm For Prom=začátek To konec Step Krok příkazy pro Krok=1 lze vynechat NextProm Příklad: výpočet faktoriálu Function FAKT (N As Long) As Long Dim F As Long Dim I As Long F=1 For I=1 To N F=F*I Next I FAKT=F End Function
EXCEL : cyklus DoLoop Cyklus řízený podmínkou – pět možností podmínka na začátku kladná záporná podmínka na konci kladná bez podmínky (nekonečný)
EXCEL : cyklus DoLoop Do While podmínka – podmínka příkazy Loop + Příkazy se vykonají pokud podmínka platí, nemusí se vykonat ani jednou + – příkazy podmínka Do Until podmínka příkazy Loop Příkazy se vykonají pokud podmínka neplatí, nemusí se vykonat ani jednou
EXCEL : cyklus DoLoop Do příkazy příkazy Loop While podmínka + – + podmínka příkazy Do příkazy Loop While podmínka Příkazy se vykonají pokud podmínka platí, musí se vykonat aspoň jednou + – podmínka příkazy Do příkazy Loop Until podmínka Příkazy se vykonají pokud podmínka neplatí, musí se vykonat aspoň jednou
EXCEL : cyklus DoLoop Do příkazy Loop Lze vložit: If podmínka Then Exit Do Příklad: Vypočtěte součet tak, aby poslední sčítanec byl menší než dané malé číslo EPS.
EXCEL : cyklus DoLoop Function EULER (EPS As Double) As Double Dim E As Double Dim F As Long Dim I As Long Dim CLEN As Double E=1: F=1: I=1 Do F = F*I CLEN = 1/F E = E + CLEN I = I+1 Loop Until CLEN<EPS EULER = E End Function