Petr Blaha
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
Automatizace Vytvoření vlastní funkce Vytvoření zcela nové aplikace
Proměnná Místo v paměti pro uložení informace Rozsah Lokální Globální
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) Double 8 bajtů Desetinná čísla (12 míst) Základní desetinná čísla 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á 2x10 9 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 Variant Min. 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 <=,>=
Application Workbooks Sheets Range Charts Tables PivotTables
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 pojemnovanou oblast 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( Li st1 ).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
Alt + F11
Sub vyber() Range( A1 ).select End sub
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á=Hodnota1 Case Hodnota2 Příkazy, když Proměnná=Hodnota2 Case Hodnota3 Příkazy, když Proměnná=Hodnota3 Case Else Příkazy, když Proměnná=něco jiného End Select
Do While podmínka příkazy Loop Do Until podmínka příkazy Loop
FOR podmínka TO podmínka STEP krok příkazy NEXT
Dim ws As Worksheet For Each ws In Application.Worksheets ws.visible = True ws.range("a1").value = "Bla" Next
FOR i=0 TO 9999 STEP 1 cells(i,15).value=i IF i=55 THEN EXIT FOR END IF 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],[por ovná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
Sub upravvelikostfontu(velikost) selection.font.size=velikost End sub
Range( A1 ).formula= Average(A2:B5) Range( A1 ).formular1c1= Average(R2C1:R5 C5) Range( A1 ).formulalocal= průměr(a2:b5) Range( A1 ).formular1c1= průměr(r2c1:r5c 5)
Activate Calculate Change Deactivate BeforePrint
Activate BeforeClose BeforePrint BeforeSave BeforePrint Deactivate Open SheetCalculate SheetChange StartUp
http://msdn.microsoft.com/enus/library/microsoft.office.tools.excel.aspx