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

Jste zde: Úvodní stránka » excel » vba-teorie-zaklady » excel-vba-pole

Pole ve VBA Excel

Videokurzy Excel

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

co je a jak využít pole v VBA MS Excelu - nejedná se o pole ropná :)

Úvodem co je pole

Pole je indexovaná skupina nějakých dat. Tato skupina se chová jako by šlo o jednu proměnou, která má několik položek. Na jednotlivé položky se poté odkazuje pomocí indexu.

Pole se začíná standartně indexovat od nuly 0. Je pravda, že tohle lze změnit, ale nedoporučuji to. Udělá to více škody než užitku.

Pole - příklad jedna

Máme pole o deseti položkách můžeme jej deklarovat (Poznámka: Nezapomeňte - začíná se počítat od nuly)

Dim MojePole (9) As Boolean

nebo

Dim MojePole (0 To 9) As Boolean

oba zápisy jsou vícemeně identické záleží co komu vyhovuje.

Pole - příklad 2

Máme seznam faktur za roky 2009 - 2011, můžeme si indexování pole posunout.

Dim FakturyPole (2009 To 2011) As Double

Pole - příklad 3

Dinamické pole pokud neznáme přesně počet prvků. Například potřebuji načíst seznam listů.

Dim ListPole () As Double

Posunutí indexování

Potřebujeme-li indexovat pole od jedničky doporučuji použít kód

Dim MojePole (1 To 10) As String

Je pravda že existuje i jiná možnost v posunutí indexování

Option Base 1

Tohle uvádím jen na doplnění v případě, že se s tímto zápisem setkáte u konkurenčních VBA programů. Osobně tohle nedoporučuji.

Odkazování na pole

Odkazování na pole je jednoduché. Předpokladáme z příkladu 3 vkládaní jmen listu do našeho pole.

ListPole(i) = ....

Kde i je index

Vícerozměrná pole

Pole o pevné velikosti (Integer) o 10 řádcích a 10 sloupcích:

Dim MojePole(9, 9) As Integer

nebo:

Dim MojePole(0 To 9, 0 To 9) As Integer

Poznámka: V jazyku Visual Basic lze deklarovat pole až o 60 rozměrech. Osobně si nedokážu představit jak s polem o 60-ti rozměrech pracovat a případně v něm hledat chybu.

Platnost polí

Podobně jako konstanty lze pomocí příkazů Dim, Static, Private, nebo Public nastavit platnost.

Závěrem

Základy na k práci s poli jsem probral, na případné dotazy jsou komentáře.

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

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, PowerPoint) se věnuji od roku 2000 (od 2004 ne této doméně) - Roku 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 také na on-line videích pro SEDUO. Školím a konzultuji, učím na MUNI. Hlavně tvořím tento web. Je zde k dispozici přes 1.000 návodu, tipů a triků včetně stovek 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


Ondřej

Přidáno: 05.02.15 17:39

Dobrý den, při začátku práce s polem jsem hned narazil na problém. Při proceduře mi vyběhne chybove hlaseni run-time error 9- subscript out of range na řádkujmeno_zamestnance(i) = TextBox1.Text Private Sub CommandButton1_Click() Dim i As Integer Dim jmeno_zamestnance() As String i = 0 i = i + 1 jmeno_zamestnance(i) = TextBox1.Text ListBox1.AddItem (jmeno_zamestnance(i)) TextBox1.Text = "" End Sub

Jojo

Přidáno: 06.02.15 08:54

To Ondřej: -- Private Sub CommandButton1_Click() Dim i As Integer Dim jmeno_zamestnance() As String i = 1 ReDim jmeno_zamestnance(i) jmeno_zamestnance(i) = TextBox1.Text ListBox1.AddItem (jmeno_zamestnance(i)) TextBox1.Text = "" End Sub







Sdílejte

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

Nové články


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

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