+ All Categories
Home > Documents > MS EXCEL – základy programování a algoritmizace ve VBA€¦ · Microsoft Windows používají...

MS EXCEL – základy programování a algoritmizace ve VBA€¦ · Microsoft Windows používají...

Date post: 14-Jun-2020
Category:
Upload: others
View: 5 times
Download: 0 times
Share this document with a friend
13
2016/2017 MS EXCEL základy programování a algoritmizace ve VBA Vedoucí týmu: Kristina Balogová Členové týmu: Miroslava Saňáková Nikola Pálfiová Michal Machů
Transcript
Page 1: MS EXCEL – základy programování a algoritmizace ve VBA€¦ · Microsoft Windows používají pro vnitřní zápis znaků (např. jména souborů a adresářů v NTFS) od Windows

2016/2017

MS EXCEL – základy programování a algoritmizace ve

VBA

Vedoucí týmu: Kristina Balogová

Členové týmu: Miroslava Saňáková

Nikola Pálfiová

Michal Machů

Page 2: MS EXCEL – základy programování a algoritmizace ve VBA€¦ · Microsoft Windows používají pro vnitřní zápis znaků (např. jména souborů a adresářů v NTFS) od Windows

1

Obsah ALGORITMUS .......................................................................................................................... 2

Vlastnosti algoritmů ............................................................................................................... 2

Dělení algoritmů ..................................................................................................................... 2

Rekurzivní a iterativní algoritmy ....................................................................................... 2

Deterministické a nedeterministické algoritmy .................................................................. 2

Sériové, paralelní a distribuované algoritmy ...................................................................... 2

Různá pojetí pojmu algoritmus .............................................................................................. 2

Co je makro ................................................................................................................................ 3

Složitější makro .................................................................................................................. 3

První program ..................................................................................................................... 4

UŽIVATELSKY DEFINOVANÁ FUNKCE ............................................................................ 7

VBA-vytvoření vlastní funkce ............................................................................................... 7

ROZDÍL MEZI MAKREM A UŽIVATELSKY DEFINOVANOU FUNKCI (UDF) ............. 7

Debug ......................................................................................................................................... 8

ASCII ......................................................................................................................................... 8

ASCII TABULKA: ............................................................................................................ 8

UNICODE .................................................................................................................................. 9

HISTORIE .............................................................................................................................. 9

PŮVODNÍ CÍLE .................................................................................................................... 9

Jednotnost ........................................................................................................................... 9

Univerzálnost ..................................................................................................................... 9

Jednoznačnost ..................................................................................................................... 9

VYUŽITÍ .............................................................................................................................. 10

Operační systémy ............................................................................................................. 10

Aplikace ........................................................................................................................... 10

Web .................................................................................................................................. 10

VBA – referenční příručka ................................................................................................... 10

PŘÍKLADY PROGRAMOVÁNÍ VE VBA ............................................................................ 11

ZDROJE ................................................................................................................................... 12

Page 3: MS EXCEL – základy programování a algoritmizace ve VBA€¦ · Microsoft Windows používají pro vnitřní zápis znaků (např. jména souborů a adresářů v NTFS) od Windows

2

ALGORITMUS

Algoritmus je schematický postup pro řešení určitého druhu problémů, který je prováděn

pomocí konečného množství přesně definovaných kroků. Ačkoliv se dnes tento pojem

používá především v informatice a přírodních vědách obecně, tak je jeho působnost daleko

širší (kuchyňské recepty, návody a postupy…). Samotné slovo algoritmus pochází ze jména

perského matematika 9. století, který ve svých dílech položil základy algebry (arabské číslice,

řešení lineárních a kvadratických rovnic).

Vlastnosti algoritmů

1. Konečnost – algoritmus má konečné množství kroků.

2. Určitost – všechny kroky algoritmu jsou přesně definovány.

3. Korektnost – algoritmus skončí pro libovolná data se správným výsledkem v

konečném množství kroků.

4. Obecnost – algoritmus řeší všechny úlohy daného typu.

Dělení algoritmů

Rekurzivní a iterativní algoritmy

Iterativní algoritmus je takový, který spočívá v opakování určité své části. Opakuje kód

prostřednictvím volání sebe sama.

Výhoda rekurzivních algoritmů je v jejich snadno čitelném zápisu. Nevýhodou je spotřeba

dodatečných systémových prostředků pro udržení jednotlivých rekurzivních volání.

Deterministické a nedeterministické algoritmy

Deterministický je takový algoritmus, který má v každém svém kroku právě jednu možnost,

jak pokračovat. Nedeterministický jich má více.

Sériové, paralelní a distribuované algoritmy

Sériový algorimus vykonává všechy kroky v sérii (jeden po druhém), paralelní algoritmus tyto

kroky vykonává zároveň (ve více vlákech) a distribuovaný algoritmus kroky vykonává

zároveň na více strojích.

Různá pojetí pojmu algoritmus

V běžné řeči a v různých učebnicích se setkáte s různě přísným pojetím pojmu algoritmus.

Někdo požaduje splnění více z uvedených vlastností, někdo méně. Základní myšlenka je

nicméně shodná. Algoritmus je lidsky (a tedy nepřesně) řečeno strojově proveditelný,

spolehlivý a užitečný pracovní postup.

Page 4: MS EXCEL – základy programování a algoritmizace ve VBA€¦ · Microsoft Windows používají pro vnitřní zápis znaků (např. jména souborů a adresářů v NTFS) od Windows

3

Co je makro

Výborně se hodí pro stále se opakující činnosti. Případně chceme-li vytvořit v Excelu něco

profesionálního, neobjedeme se bez maker (VBA). Jejich použití je v Excelu velice

jednoduché. Stačí mít základy programování ve Visual Basicu (VB), nebo v jiném

programovacím jazyku, a již můžete programovat.

Složitější makro

Spustíme nejprve Visual Basic. V menu Nástroje vybereme makro a poté Editor jazyka

Visual Basic

Otevře se nám vlastní okno ve Visual Basicu. Doporučuji si ještě zobrazit okna Project

Explorer a Properties Window a obdržíme již použitelnou obrazovku:

Page 5: MS EXCEL – základy programování a algoritmizace ve VBA€¦ · Microsoft Windows používají pro vnitřní zápis znaků (např. jména souborů a adresářů v NTFS) od Windows

4

Tak a máme přehledně uspořádanou plochu se všemi potřebnými drobnostmi. No a můžeme

se vrhnout do našeho prvního programu.

První program

Z menu vybereme Insert - Module a můžeme napsat náš První program. Pro jednoduchost si

vybereme například součet.

Function secti(x, y)

secti = x + y

End Function

Page 6: MS EXCEL – základy programování a algoritmizace ve VBA€¦ · Microsoft Windows používají pro vnitřní zápis znaků (např. jména souborů a adresářů v NTFS) od Windows

5

Pro kontrolu námi vytvořených programů existuje mnoho prostředků, např.: Object Browser,

který nám umožní i vložit popisek námi vytvořené funkce. Ať víme, co jsme si to

naprogramovali.

Ke každé funkci si můžeme uložit komentář. V Object Browser pravým tlačítkem na funkci

vybereme Properties...

Page 7: MS EXCEL – základy programování a algoritmizace ve VBA€¦ · Microsoft Windows používají pro vnitřní zápis znaků (např. jména souborů a adresářů v NTFS) od Windows

6

Zde zadáme náš popis. Po stisknutí OK se naše poznámka uloží.

A teď již můžeme v Excelu naší první funkci použít. Vybereme Vlož - Funkce,

vybereme vlastní funkce.

Zde již je stačí kliknout na název námi vytvořené funkce a hotovo :)

Page 8: MS EXCEL – základy programování a algoritmizace ve VBA€¦ · Microsoft Windows používají pro vnitřní zápis znaků (např. jména souborů a adresářů v NTFS) od Windows

7

A tohle je výsledek.

Tak a tímto bychom měli svou první naprogramovanou funkci. Je pravda, že

zadáním =10+20 máme součtovou funkci hned a bez programování, ale cílem bylo ukázat jak

naprogramovat funkci na jednoduchém příkladu. Složitější příklady budou následovat.

UŽIVATELSKY DEFINOVANÁ FUNKCE

funkce je příkaz či sled příkazů vykonávaných jako celek a tvořících uzavřenou

jednotku,

kromě toho, že funkce provádí nějaké příkazy v určitém sledu (pořadí), tak také vrací

určitou hodnotu, a tuto hodnotu můžeme uložit do proměnné (resp . do paměti PC) a

následně zpracovat.

např. funkce y = log (x), tzn. známý zápis funkce „logaritmus“, ze zadaného čísla „x“

vypočítá jiné číslo a vyjádří (resp. na-vrátí) je jako číslo „y“. Funkce v programech,

tzn i v Excelu, se chovají stejně, tzn tak jak je v předchozím komentáři zmíněno,

návratová hodnota funkce může obsahovat buď výsledek výpočtu, nebo může

informovat o úspěšném či neúspěšném výsledku průběhu funkce.

VBA-vytvoření vlastní funkce

Jednotlivé verze Excelu mají integrovány řádově stovky funkcí. Přesto se můžeme dostat do

situace, kdy by se nám hodila funkce, která v Excelu není. Nebo nás nebaví opakovaně

zapisovat dlouhý vzorec obsahující více funkcí a chceme si vytvořit vlastní funkci, která tuto

kombinaci funkcí nahradí.

ROZDÍL MEZI MAKREM A UŽIVATELSKY DEFINOVANOU

FUNKCI (UDF)

Funkce jsou již v Excelu předdefinovány. Pomocí makra můžeme sloučit několik funkcí

dohromady a tím si vytvořit v Excelu nad tabulkou, sešitem, vlastní novou funkcionalitu.

Page 9: MS EXCEL – základy programování a algoritmizace ve VBA€¦ · Microsoft Windows používají pro vnitřní zápis znaků (např. jména souborů a adresářů v NTFS) od Windows

8

Debug

Anglické slovo „debug“ znamená ladění anebo vychytaní chyb, odstraněni chyb

z počítačového programu. Je to proces odlaďovaní chyb z počítačového programu anebo při

vývoji softwaru.

ASCII

ASCII je anglická zkratka pro American Standard Code

for Information Interchange (americký standardní kód pro výměnu informací). Jde o kódovací

systém znaků anglické abecedy, číslic, jiných znaků a řídících kódů. Jde o historicky

nejúspěšnější znakovou sadu, z které vychází většina současných standardou pro kódovaní

textu přinejmenším v euro-americké zóně.

ASCII TABULKA:

0032 mezera 0033 ! 0034 " 0035 # 0036 $ 0037 % 0038 & 0039 ‚ 0040 ( 0041 ) 0042 * 0043 + 0044 , 0045 - 0046 . 0047 / 0048 0 0049 1 0050 2 0051 3 0052 4 0053 5 0054 6 0055 7 0056 8 0057 9 0058 : 0059 ; 0060 < 0061 = 0062 > 0063 ? 0064 @ 0065 A 0066 B 0067 C 0068 D 0069 E 0070 F 0071 G 0072 H 0073 I 0074 J 0075 K 0076 L

0077 M 0078 N 0079 O 0080 P 0081 Q 0082 R 0083 S 0084 T 0085 U 0086 V 0087 W 0088 X 0089 Y 0090 Z 0091 [ 0092 \ 0093 ] 0094 ^ 0095 _ 0096 ` 0097 a 0098 b 0099 c 0100 d 0101 e 0102 f 0103 g 0104 h 0105 i 0106 j 0107 k 0108 l 0109 m 0110 n 0111 o 0112 p 0113 q 0114 r 0115 s 0116 t 0117 u 0118 v 0119 w 0120 x 0121 y

0122 z 0123 { 0124 | 0125 } 0126 ~ 0127 • 0128 € 0129 � 0130 ‚ 0131 � 0132 " 0133 … 0134 † 0135 ‡ 0136 � 0137 ‰ 0138 Š 0139 ‹ 0140 Ś 0141 Ť 0142 Ž 0143 ? 0144 � 0145 ' 0146 ' 0147 " 0148 " 0149 o 0150 - 0151 - 0152 � 0153 ™ 0154 š 0155 › 0156 ś 0157 ť 0158 ž 0159 ź 0160 t. mezera 0161 ˇ 0162 ˘ 0163 Ł 0164 ¤ 0165 Ą 0166 ¦

0167 § 0168 ¨ 0169 © 0170 Ş 0171 " 0172 0173 0174 ® 0175 Ż 0176 ° 0177 ± 0178 ˛ 0179 ł 0180 ´ 0181 µ 0182 0183 · 0184 ¸ 0185 ą 0186 ş 0187 " 0188 Ľ 0189 ˝ 0190 ľ 0191 ż 0192 Ŕ 0193 Á 0194 Â 0195 Ă 0196 Ä 0197 Ĺ 0198 Ć 0199 Ç 0200 Č 0201 É 0202 Ę 0203 Ë 0204 Ě 0205 Í 0206 Î 0207 Ď 0208 Đ 0209 Ń 0210 Ň 0211 Ó

0212 Ô 0213 Ő 0214 Ö 0215 × 0216 Ř 0217 Ů 0218 Ú 0219 Ű 0220 Ü 0221 Ý 0222 Ţ 0223 ß 0224 ŕ 0225 á 0226 â 0227 ă 0228 ä 0229 ĺ 0230 ć 0231 ç 0232 č 0233 é 0234 ę 0235 ë 0236 ě 0237 í 0238 î 0239 ď 0240 đ 0241 ń 0242 ň 0243 ó 0244 ô 0245 ő 0246 ö 0247 ÷ 0248 ř 0249 ů 0250 ú 0251 ű 0252 ü 0253 ý 0254 ţ 0255 ˙

Page 10: MS EXCEL – základy programování a algoritmizace ve VBA€¦ · Microsoft Windows používají pro vnitřní zápis znaků (např. jména souborů a adresářů v NTFS) od Windows

9

UNICODE

Unicode (anglicky Unicode) je technická norma pro oblast výpočetní techniky definující

konzistentní kódování pro reprezentaci a zpracovávání textů použitelné pro většinu písem

používaných v současnosti na Zemi. Nejnovější verze obsahuje repertoár více než 120 000

znaků pokrývajících 129 moderních a historických písem a mnoho sad symbolů. Standard

sestává ze sady tabulek pro vizuální referenci, popisu metod kódování, sady referenčních

datových souborů a dalších položek, jako například vlastností znaků, pravidel pro normalizaci

textů, dekompozici, řazení, vykreslování a zobrazování obousměrného textu (pro správné

zobrazení textu obsahující písma psaná zprava doleva i zleva doprava, jako například arabské

a hebrejské písmo

Úspěch Unicode v unifikaci znakových sad vedl k jeho rozšíření a převládajícímu používání

pro internacionalizaci a lokalizaci počítačového softwaru. Unicode je implementován mnoha

technologiemi, včetně moderních operačních systémů, XML, programovacím jazykem Java a

NET Frameworkem firmy Microsoft.

HISTORIE

Ke konci osmdesátých let 20. století vznikla naléhavá potřeba sjednotit různé kódové tabulky

znaků pro národní abecedy. Například český jazyk používal v informatice nejméně 5 různě

kódovaných tabulek (kódování bratří Kamenických, PC Latin 2, Windows-1250, ISO Latin.

Vznikaly značné problémy při spolupráci aplikací a při přenosech dat mezi programy a

různými platformami. Podobná situace byla ve všech jazycích, které nevystačily se základní

7bitovou tabulkou ASCII znaků.

Kolem roku 1991 došlo k dohodě a projekty spojily své úsilí na vytvoření jednotné tabulky.

Oba projekty stále existují a publikují své standardy samostatně, ale tabulky znaků jsou

kompatibilní a jejich rozšiřování je koordinováno.

PŮVODNÍ CÍLE

Jednotnost

Konstantní šířka znaků dovoluje efektivní hledání, třídění, editace a zobrazení prvků.

Univerzálnost

Kapacita znakové sady musí být dostatečně velká k zahrnutí všech znaků, které by mohly být

využity při výměně textů – především ty, které už byly definovány v hlavních mezinárodních,

národních a průmyslových znakových sadách.

Jednoznačnost

Jakákoli 16bitová hodnota, která zastupuje v jakémkoliv kontextu stejný znak.

Page 11: MS EXCEL – základy programování a algoritmizace ve VBA€¦ · Microsoft Windows používají pro vnitřní zápis znaků (např. jména souborů a adresářů v NTFS) od Windows

10

VYUŽITÍ

Operační systémy

Znakovou sadu Unicode používá většina moderních operačních systémů. Operační systémy

Microsoft Windows používají pro vnitřní zápis znaků (např. jména souborů a adresářů v

NTFS) od Windows 2000 kódování UTF-16, avšak zároveň se v české mutaci používá

kódování CP1250 (historicky) a CP852 (v příkazovém řádku).

Aplikace

Některé starší aplikace Unicode (dosud) nepodporují. Na druhé straně pro některé systémy je

Unicode již jedinou používanou znakovou sadou.

Programovací jazyky Java a jazyky podporující Common Language Infrastructure (např. C#)

vnitřně používají šestnáctibitovou verzi Unicode a navenek podporují mnoho různých

kódování.

Web

Unicode je znakovou sadou pro HTML dokumenty od verze 4.0 a pro všechny XML

dokumenty. Výchozím kódováním je UTF-8, které všechny prohlížeče podporují už delší

dobu.

VBA – referenční příručka http://www.fce.vutbr.cz/aiu/vojkuvka.m/bu006/reference.pdf

UNICODE TABULKA

Page 12: MS EXCEL – základy programování a algoritmizace ve VBA€¦ · Microsoft Windows používají pro vnitřní zápis znaků (např. jména souborů a adresářů v NTFS) od Windows

11

UNICODE znaky

PŘÍKLADY PROGRAMOVÁNÍ VE VBA

JAKOU HODNOTU VRÁTÍ PŘÍKAZ LEFT("PONDĚLÍ", 2)?

1. Funkce se jmenuje Leva_strana. Vstupními parametry této funkce jsou text a počet.

2. Návratovou hodnotou funkce Leva_strana je příkaz Left se vstupními parametry text a

počet. Příkaz Left vrací z námi zadaného řetězce ve vstupním parametru text počet

znaků z levé strany podle hodnoty ve vstupním parametru počet.

3. Řetězec je v podstatě slovo – neboli konečná posloupnost symbolů dané abecedy.

4. Parametry musí být odděleny středníkem.

Page 13: MS EXCEL – základy programování a algoritmizace ve VBA€¦ · Microsoft Windows používají pro vnitřní zápis znaků (např. jména souborů a adresářů v NTFS) od Windows

12

5. Na obrázku v prvním sloupci vidíme pojmenování naší funkce, čili Leva_strana.

6. Naši funkci v excelu zavoláme zadáním rovnítka a napsáním leva, excel by nám měl

sám nabídnout naši naprogramovanou funkci Leva_strana. Příklad zadání vidíte ve

sloupci D.

7. Naším vstupním parametrem pro text je slovo Pondělí ve sloupci B a vstupní parametr

pro počet je 2 ve sloupci C.

8. Po zavolání funkce Leva_strana zadáváme nejprve parametr Pondělí, oddělíme

středníkem a můžeme zadat parametr 2.

9. Výstupem této funkce budou 2 znaky z levé strany zadaného řetězce.

ZDROJE

https://www.youtube.com/watch?v=nUHbVRSLlEs

http://www.fce.vutbr.cz/aiu/vojkuvka.m/BU06/projekt-2016/06/06-ucebni_text.pdf

http://ww2.justanswer.com/uploads/TooUnfazed/2009-09-

06_210006_Vista_Windows_Nabla_Symbol.jpg

http://ww2.justanswer.com/uploads/TooUnfazed/2009-09-

06_210006_Vista_Windows_Nabla_Symbol.jpg

http://www.biega.com/special-char.html

https://cs.wikipedia.org/wiki/Unicode#Opera.C4.8Dn.C3.AD_syst.C3.A9my


Recommended