REDIM je klíčové slovo v programovacím jazyce VBA používaném v aplikaci Excel pro práci s poli. Umožňuje měnit velikost pole v průběhu programu, přidávat nebo odebírat položky.
REDIM je velmi užitečná příležitost, zejména při psaní Maker, která zpracovávají data v tabulkách Excelu. S REDIM můžete dynamicky měnit rozměry pole na základě množství dat, což usnadňuje a usnadňuje programování.
Příklad použití REDIM:
Sub Example()
Dim myArray() As Variant
Dim i As Long
ReDim myArray (1 To 3) ' určení původní velikosti pole
For i = 1 To 3
myArray (i) = i ' přiřazení hodnot prvkům pole
Next i
ReDim Preserve myArray ( 1 To 5) ' Změna velikosti pole s uložením dat
For i = 4 To 5
myArray (i) = i ' přiřazení hodnot novým prvkům pole
Next i
'výstup prvků pole
For i = 1 To 5
Debug.Print myArray(i)
Next i
End Sub
V tomto příkladu je nejprve definováno pole myArray s velikostí od 1 do 3. V cyklu for jsou pak hodnoty přiřazeny prvkům pole. Poté se velikost pole změní pomocí REDIM a klíčového slova Preserve, aby se data uložila. V cyklu for jsou pak hodnoty přiřazeny novým prvkům pole. Nakonec jsou prvky pole vyvedeny pomocí pokynů Debug.Print.
Použití REDIM usnadňuje správu velikostí pole v průběhu programu, přiřazování hodnot prvkům a pohodlné provádění různých operací nad daty v jazyce VBA Excel.
VBA Excel REDIM: základy a aplikace
REDIM lze použít jak na již oznámená pole, tak na nová pole. Pokud máte například pole o velikosti 5 a chcete jej zvětšit na 10, můžete k tomu použít REDIM.
Syntaxe REDIM je následující:
REDIM [PRESERVE] arrayname(subscripts)
Při použití příkazu REDIM bez klíčového slova PRESERVE, můžete změnit velikost pole, ale data v poli budou ztracena. Pokud potřebujete uložit existující data, můžete použít klíčové slovo PRESERVE. To umožňuje zachovat hodnoty prvků pole, přičemž se mění pouze jeho velikost.
Zde je jednoduchý příklad použití REDIM s klíčovým slovem PRESERVE:
Dim myArray(1 To 5) As Integer
REDIM PRESERVE myArray(1 To 10)
V tomto příkladu deklarujeme pole myArray s velikostí od 1 do 5 a datovým typem Integer. Poté používáme ReDim PRESERVE ke změně velikosti pole myArray z 1 na 10. Klíčové slovo PRESERVE umožňuje uložit hodnoty prvních pěti prvků pole a nové pozice v poli budou vyplněny výchozími hodnotami pro datový typ Integer.
REDIM lze také použít k vytvoření a změně velikostí vícerozměrných polí. Například pro oznámení dvourozměrného pole a jeho změnu lze použít následující kód:
Dim myArray(1 To 5, 1 To 3) As Integer
REDIM myArray(1 To 10, 1 To 5)
V tomto příkladu oznamujeme dvourozměrné pole myArray s dimenzí od 1 do 5 v první dimenzi a od 1 do 3 ve druhé dimenzi. Poté používáme REDIM ke změně velikosti pole myArray na 10 v první dimenzi a na 5 ve druhé dimenzi. Výsledkem je dvourozměrné pole s novými rozměry, ve kterém zůstane pouze prvních pět prvků ve druhé dimenzi.
Operátor REDIM je výkonný nástroj VBA Excel, který vám umožňuje spravovat velikost polí během provádění programu. Správné použití REDIM vám může pomoci optimalizovat kód, zvýšit jeho výkon a zlepšit ovladatelnost polí.
Naučit se základní pojmy REDIM VBA Excel
REDIM lze použít jak k vytvoření nového pole, tak ke změně velikosti stávajícího pole. Když používáte REDIM k vytvoření nového pole, označíte jeho rozměry a typ datových prvků pole. Pokud používáte REDIM ke změně velikosti stávajícího pole, můžete změnit jak jednu z jeho velikostí, tak obě současně.
REDIM lze také použít ke změně velikosti dynamické proměnné. V VBA lze prohlásit proměnnou za dynamickou pomocí klíčového slova DIM s datovým typem a poté změnit její velikost pomocí REDIM. To je zvláště užitečné, když předem nevíte, kolik položek bude pole obsahovat nebo kolik paměti bude potřeba k uložení hodnoty proměnné.
ReDim PRESERVE je rozšířená verze klíčového slova REDIM, která umožňuje zachovat hodnoty prvků pole při změně jeho velikosti. Pokud používáte ReDim PRESERVE ke zvětšení velikosti pole, zůstanou zachovány hodnoty již existujících prvků a nové položky budou vyplněny výchozí hodnotou. Pokud používáte ReDim PRESERVE ke zmenšení velikosti pole, hodnoty přebytečných prvků budou odstraněny.
REDIM lze použít s jednorozměrnými poli, vícerozměrnými poli a dynamickými proměnnými. Poskytuje pohodlný způsob správy velikosti dat v polích a dynamických proměnných, díky čemuž je Kód čitelnější a šetří paměť.