Přeskočit navigaci | Přeskočit na novinky

Videokurzy na Seduo: Excel pro začátečníky (přes 13.000 studujících) nebo kompletní kurz Excel (6 hodin - 160 videí).

     

Jste zde: Úvodní stránka » excel » vba-teorie-zaklady » prace-s-poli-excel-vba

Práce s poli ve VBA MS Excelu


trochu více o polích v MS Excelu a jak se k ním chovat ve VBA - pokud máte zájem o pole ropná zkuste jiný článek :)

Teoretický úvod

Teoretický úvod do polí je sepsal v článku: Excel pole a jejich využítí - základy.. V tomto článku se zaměřím na praktické ukázky. Jak nadefinovat pole, jak do něj zapsat hodnoty a jak z něj hodnoty vyčíst.

Jednoduché pole

Jak definovat pole. Toto pole se počítá od nuly. Doporučuji zachovat i když je možnost nadefinovat Excelu, aby počítal od jedné, jelikož při přetahování skriptu může dělat problém a douho budete onu chybu hledat. Alespoň toto je má zkušenost. Takže kód je jednoduchý:

Dim Arr(5) Arr(0) = "Pondělí" Arr(1) = "Úterý" Arr(2) = "Středa" Arr(3) = "Čtvrtek" Arr(4) = "Pátek" ' Vypíšeme do dialogového okna. MsgBox Arr(0) & "-" & Arr(1) & "-" & Arr(2) & "-" & Arr(3) & "-" & Arr(4)

Poznámka: Hodnoty lze vyčítat přes cyklus, ale pro jednoduchost jsem jej v ukázce nepoužil.

Ukázka:

MS Excel pole

Pole s Option Base 1

Poznámka: Jak jsem psal lze použít deklaraci Option Base 1, poté se indexuje od jedné, ale nedoporučuji.

Option Base 1 Sub MojePole( ) Dim Arr(4) Arr(1) = “Jaro” Arr(2) = “Léto” Arr(3) = “Podzim” Arr(4) = “Zima” Msgbox Arr(1) & "-" & Arr(2) & "-" & Arr(3) & "-" & Arr(4) & "-" & Arr(5) End Sub

Vytvoření pole jiné velikosti

V ukázkovém příkladě pro 7 hodnot.

Dim Arr(7) Arr(0) = "Po" Arr(1) = "Út" Arr(2) = "St" Arr(3) = "Čt" Arr(4) = "Pá" Arr(5) = "So" Arr(6) = "Ne" MsgBox Arr(0) & "-" & Arr(1) & "-" & Arr(2) & "-" & Arr(3) & "-" & Arr(4) & "-" & Arr(5) & "-" & Arr(6) MS Excel pole

Zvětšní pole

Pozor: Provede smazání původních hodnot.

ReDim Arr(5) 'Dim Arr(7) Arr(0) = "Po" Arr(1) = "Út" Arr(2) = "St" Arr(3) = "Čt" Arr(4) = "Pá" ReDim Arr(7) Arr(5) = "So" Arr(6) = "Ne" MsgBox Arr(0) & "-" & Arr(1) & "-" & Arr(2) & "-" & Arr(3) & "-" & Arr(4) & "-" & Arr(5) & "-" & Arr(6) MS Excel pole

Zvětšní pole bez smazání původních hodnot

Ukázka jak zvětšit pole, tak aby nedošlo k přepsání původních dat jež už máme uložená.

ReDim Arr(5) 'Dim Arr(7) Arr(0) = "Po" Arr(1) = "Út" Arr(2) = "St" Arr(3) = "Čt" Arr(4) = "Pá" ReDim Preserve Arr(7) Arr(5) = "So" Arr(6) = "Ne" MsgBox Arr(0) & "-" & Arr(1) & "-" & Arr(2) & "-" & Arr(3) & "-" & Arr(4) & "-" & Arr(5) & "-" & Arr(6) MS Excel pole

Dvourozměrné pole

Ukázka dvojrozměrného pole. Lze provozovat i tří a více rozměrná pole, ale osobně nepoužívám.

Arr(0, 0) = 1000 Arr(0, 1) = 120000 Arr(1, 0) = 12 Arr(1, 1) = 20000 MsgBox "Počet PC v roce 1900: " & Arr(0, 0) & vbCrLf & _ "Počet notebooků v roce 1900: " & Arr(1, 0) & vbCrLf & _ "Počet Pc v roce 2000: " & Arr(0, 1) & vbCrLf & _ "Počet notebooků v roce 1900: " & Arr(1, 1)

Poznámka: Jde o modelový příklad, nic lepšího mě pro prezentaci dvojrozměrného pole nenapadlo, ale třeba bude mít někdo nápad, který napíše v komentářích.

MS Excel pole

Příklad ke stažení

Ukázkový příklad Prace s poli v MS Excel za využití VBA soubor ve formátu *.xlsm - ke stažení zdarma

MS Excel pole

Závěrem

Praktické ukázky ať nemusím na dotazy odpovídat jednotlivě.

Článek byl aktualizován: 01.11.2014 14:38

Odměna

Ušetřil vám tento web čas, peníze? Pomohl vyřešit problém? Jste ochotni poskytnout symbolickou odměnu na další rozvoj? Vybrte si formu odměny, která vám vyhovuje.


Pavel Lasák

Pavel Lasák - autor webu

Microsoft Office (Word, Excel, PowerPoint) se věnuji od roku 2006. Své vědomosti a zkušenosti dávám k dispozici na různých školeních a konzultacích, ale také na tomto webu. K dispozici na tomto webu je mnoho návodu, tipů a triků včetně desítek různých šablon.

   Pavel Lasák LinkedIn Profil    Pavel Lasák Google+ Profil    Pavel Lasák facebook Profil    Pavel Lasák twitter Profil

Doporučte tento článek přátelům

Pokud vám článek pomohl, případně si myslíte, že může pomoci i někomu dalšímu, budu rád když jej sdílením doporučíte přátelům - děkuji:



Komentáře


Dvourozměrná pole

Přidáno: 13.07.12 15:04

Dobrý den, snažím se o dynamickou definici dvourozměrného pole, ale nedaří se. Mám dva sloupečky vedle sebe, které oba dva bych rád nasoukal do pole a to následně prohledával.Neznám počet řádků před začátkem cyklu. Jeden sloupeček podle návodů bez problémů nasoukám. Mohl by mě prosím někdo navést? Díky, Vláďa

Pavel Lasák

Přidáno: 14.07.12 17:50

To Dvuorozměrná pole: Nepomůže web RAdka Jurečka? http://www.rjurecek.cz/navody/PoleOblast.htm







Sdílejte

Pomohl Vám návod?
Sdílejte na Facebooku, G+
LinkedIn...

Nové články

25.03.2017:
ROUNDUP, ROUNDDOWN - zaokrouhlování

07.04.2017:
Řazení Excel - bug - problém

09.04.2017:
Podmínkové funkce Excel - bug - problém


Newsletter

Přihlaste se odběru novinek a získejte:
Ebook zdarma -
10 kroků ke zvládnutí (Word, Excel, PowerPoint)
Šipka Kniha 3D Více o ebooku ...

TOPlist Licence Creative Commons webarchiv rss XML

Stránky o MS Office (Excel) produktu společnosti Microsoft. Neslouží jako technická podpora.
| Email na autora: pavel.lasak@gmail.com | Copyright © : Pavel Lasák 2004 - 2017 | 22731

Tento web zatím neprošel jazykovou korekturou. Beta verze redakčního systému.