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

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

Práce s poli ve VBA MS Excelu

Videokurzy Excel

Ve spolupráci se SEDUO jsem vytvořil několik videokurzů:

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: 19.09.2020 11:07

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 - autor webu

Pavel Lasák

Microsoft Office (Word, Excel, Google tabulky, PowerPoint) se věnuji od roku 2000 (od 2004 na této doméně) - V roce 2017 jsem od Microsoft získal prestižní ocenění MVP (zatím jsem jediný z ČR v kategorií Excel). Své vědomosti a zkušenosti dávám k dispozici i on-line ve videích pro SEDUO. Ve firmách školím a konzultuji, učím na MUNI. Tento web již tvořím přes 15 let. Zdarma je zde přes 1.000 návodu, tipů a triků, včetně přes 250 různých šablon, sešitů.

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


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


Reklama


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 - 2021 |