Upload
phungcong
View
229
Download
0
Embed Size (px)
Citation preview
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 Cykly Základní funkce (matematické, textové, data a
času) Message box a prompt Zadávání funkce do buňky Funkce s parametrem
Teoreticky cokoliv v anglické klávesnici, bez mezer a znaků jako „!, %, -,/“ atd
Jednoznačné názvy
Např:◦ „dnes“, „rovnice“, „pocet_obratek“,
„dlouheCeleCislo“
Typ Velikost Rozsah Význam
Byte 1 bajt 0-255 Binární data
Integer 2 bajty -32.768 až 32.768 Základní celá čísla
Long 4 bajty -2 mld. až + 2 mld. Rozšířená celá čísla
Single 4 bajty Desetinná čísla (6 míst)Základní desetinná
čísla
Double 8 bajtů Desetinná čísla (12 míst)Rozšířená
desetinná čísla
Decimal 14 bajtů Desetinná čísla (28 míst) Nelze deklarovat
Typ Velikost Rozsah Význam
Currency 8 bajtů 4 desetinná místa Rychlejší výpočty
String různá 2x109 znaků Textové hodnoty
Boolean 2 bajty 0 nebo 1 (true/false) Logická hodnota
Date 8 bajtů 1.1 100 až 31.12.9999 datum
Object 4 bajty objekt Odkaz na objekt
VariantMin. 16 bajtů
libovolný Pro neznámé typy
Procedura◦ Série příkazů, které se mají provést
Funkce◦ Série příkazů, které se mají provést
◦ Vrací hodnotu
Akce, kterou vyvolá uživatel nebo systém, na kterou je aplikace schopná reagovat
Otevření sešitu, zavření sešitu, aktivace buňky…
Funkce Operátor
Umocnění ^
Násobení, dělení *,/
Zbytek po dělení mod
Sčítání, odčítání +,-
Logické funkce NOT, AND, OR, XOR
Řetězové &
Základní =, >,<,<>
Menší/větší nebo rovno <=,>=
Odkaz na buňku, buňky,oblast buňek, sloupec/řádek, celý list
Range(„A1“) – odkaz na buňku A1
Range(„A1:B5“) – odkaz na buňky A1 až B5
Range(„A1,B5,C6:D6“) – odkaz na buňky A1, B5 a C6 až D6
Range(„ahoj“) - odkaz na pojemnovanouoblast „ahoj“
Range(„A1“).offset(2,2).select◦ Vybere buňku o 2 vpravo a o 2 níže než A1
Selection.end(argument).select◦ Vybere poslední buňku dle argumentu◦ xlDown,xlUp,xlToLeft,xlToRight
Selection.resize(x,y).select◦ Zmenší vybranou oblast na x a y
Range(Selection,Selection.End(xlUp)).Select◦ Vybere vše od vybrané oblasti až po poslední buňku
nahoru◦ Ekvivalent je Ctrl+Shift+šipka nahoru
Odkaz na buňku, buňky,oblast buňek, sloupec/řádek, celý list
Cells(1,1) – odkaz na buňku A1
ALE!!!
Range(Cells(1, 1), Cells(2, 5)) odkaz na buňky A1 až B5
Úplný odkaz na:
Buňku A1 v VBA.xlsx na listu1:
Application.Worksheets(„VBA.xlsx“).Sheets(„List1“).Range(„A1“)
Pokud programujeme na stejném listu:
Range(„A1“)
Metadata objektů:
Buňka◦ Vlastnosti: Font, Velikost písma, hodnota,…
◦ Metody: Vybrat, Vymazat, Kopírovat
Sešit◦ Vlastnosti: Jméno, ochrana, typ
◦ Metody: Vybrat, Vymazat, Kopírovat
◦ Události: před/po kliknutí myší, po kalkulaci, po přepočítání
Range(„A1“).Select
Range(„A1“).Font
Range(„A1“).copy range(„B2“)
ActiveSheet.creator
ActiveSheet.move
Sub Activesheet_onChange()
End sub
->Možnosti aplikace Excel->Centrum zabezpěčení ->Nastavení centra zabezpečení ->Povolit všechny makra
Sub vyber()
Range(„A1“).select
Selection.Font.Name = „Arial“
Selection.Font.Size = 15
Selection.Value = „AHOJ“
End sub
IF podmínka THEN◦ Příkazy když je podmínka splněna
ELSE◦ Příkazy když není podmínka splněna
END IF
Možné podmínky:◦ A>B
◦ Cislo=5
◦ (Dnes=„pátek“ AND zítra=„sobota“)
Select Case ProměnnáCase Hodnota1
Příkazy, když Proměnná=Hodnota1Case Hodnota2
Příkazy, když Proměnná=Hodnota2Case Hodnota3
Příkazy, když Proměnná=Hodnota3Case Else
Příkazy, když Proměnná=něco jinéhoEnd Select
Dim ws As Worksheet
For Each ws In Application.Worksheets
ws.Visible = True
ws.Range("A1").Value = "Bla"
Next
Matematické◦ Abs(hodnota) – absolutní hodnota
◦ Round(hodnota,[desetiny]) – zaokrouhlení na [desetiny]
◦ Sqrt(hodnota) - odmocnina
Textové◦ Left(text,délka),Right(text,délka)
vrátí určený počet znaků zleva/zprava
◦ Mid(text,začátek,[délka])
vrátí celý text(případně [délka] znaků od začátku
◦ Trim(text)
Oseká mezery před a za
◦ Lcase(text), Ucase(text)
Převede text na malá/velká písmena
Textové◦ InStr([začátek],text1,text2,[porovnání])
Vrátí číslo 1.pozice textu2 v textu1 počínaje znakem [začátek]nebo 0 při nenalezení.
[porovnaní]
0 pro binární porovnání (vbBinaryCompare)
1 pro textové porovnání (vbTextCompare)
◦ Replace(výraz,hledat,nahradit,[začátek],[počet],[porovnání]
Nahradí ve výrazu text hledat za nahradit početkrát za použití porovnání viz výše
Datum a čas
Day(datum),Month(datum),Year(datum)
WeekDay(datum,[začátekTýdne])
DayDiff(intervalů,od,do,[prvníDenTýdne])◦ Vrátí počet intervalů („yyyy“,“m“,“d“,“h“,…) od data
do data
Now() – vrátí „12.4.2009 13:52:44“
Hour(čas),Minute(čas),Second(čas)
MsgBox(text,[buttons],[title], [HelpFile])
Zobrazí „text“ v infookně
Buttons◦ vbOKOnly, vbOKCancel, vbAbortRetryIgnore,
vbYesNoCancel, vbYesNo,vbRetryCancel
Title – nadpis
HelpFile – odkaz na místní nápovědu
InputBox(text,[title], [default], [xpos], [ypos],[helpFile], [HelpContextId])
Zobrazí okno s možností vstupu
Text – výzva k zadání
Default – předvyplněná hodnota
Xpos,Ypos – pozice okna
HelpFile, HelpContextId – odkaz na help
Range(„A1“).formula=„Average(A2:B5)“
Range(„A1“).formulaR1C1=„Average(R2C1:R5C5)“
Range(„A1“).formulaLocal=„průměr(A2:B5)“
Range(„A1“).formulaR1C1=„průměr(R2C1:R5C5)“
Activate
BeforeClose
BeforePrint
BeforeSave
BeforePrint
Deactivate Open SheetCalculate SheetChange StartUp