Spis treści
Indeks 🔎︎

# Instrukcja ReDim

Deklaruje zmienną lub tablicę.

## Składnia:

    [ReDim]Dim nazwa_zmiennej [(start To koniec)] [As typ_zmiennej][, nazwa_zmiennej2 [(start To koniec)] [As typ_zmiennej][,...]]

Opcjonalnie jako parametr można dodać słowo kluczowe Preserve w celu zachowania zawartości tablicy w przypadku zmiany wymiarów.

## Parametry:

Nazwa_zmiennej: Nazwa dowolnej zmiennej lub tablicy.

Start, koniec: Wartości numeryczne lub stałe definiujące liczbę elementów (liczba_elementów = (koniec - start) + 1) i zakres indeksacji.

Jeśli na poziomie procedury zastosowano instrukcję ReDim, wartości startu i końca mogą być wyrażeniami numerycznymi.

Typ_zmiennej: Słowo kluczowe deklarujące typ danych zmiennej.

Słowo kluczowe: Typ zmiennej

Bool: Zmienna logiczna, która może przyjąć wartości True (prawda) lub False (fałsz)

Date: Zmienna daty

Double: Zmienna zmiennoprzecinkowa typu podwójna precyzja (w zakresie od 1,79769313486232x10E308 do 4,94065645841247x10E-324)

Integer: Zmienna typu liczba całkowita (w zakresie od -32768 do 32767)

Long: Zmienna typu liczba całkowita długa (w zakresie od -2 147 483 648 do 2 147 483 647)

Object: Zmienna typu obiekt (może być wcześniej zdefiniowana wyłącznie za pomocą instrukcji Set)

[Single]: Zmienna zmiennoprzecinkowa typu pojedyncza precyzja (w zakresie od 3,402823x10E38 do 1,401298x10E-45) Jeśli słowo kluczowe nie zostało określone, zmienna jest automatycznie definiowana jako typ pojedyncza precyzja, chyba, że zostały użyte instrukcje od DefBool do DefVar.

String: Zmienna w postaci ciągu znaków składająca się z maksymalnie 64 000 znaków ASCII.

Variant: Zmienna typu variant (może zawierać wszystkie typy i jest określona przez definicję).

W LibreOffice Basic nie ma obowiązku jawnego deklarowania zmiennych. Jednak każda tablica przed użyciem powinna zostać zadeklarowana. Zmienną można deklarować za pomocą instrukcji Dim. W przypadku deklaracji wielokrotnych zmienne należy rozdzielić przecinkami. Aby zadeklarować typ zmiennej, po jej nazwie należy podać znak deklaracji typu lub użyć odpowiedniego słowa kluczowego.

LibreOffice Basic obsługuje tablice jedno- lub wielowymiarowe zdefiniowane jako określony typ zmiennych. Tablice stosuje się w programach zawierających listy lub tabele, które należy edytować. Zaletą tablic jest możliwość adresowania pojedynczych elementów za pomocą indeksów, które mogą być wyrażeniami numerycznymi lub zmiennymi.

Istnieją dwa sposoby ustawienia zakresu indeksu dla tablic deklarowanych za pomocą instrukcji Dim:

DIM text(20) As String REM 21 elementów numerowanych od 0 do 20

DIM text(5 to 25) As String REM 21 elementów numerowanych od 5 do 25

DIM text$ (-15 to 5) As String REM 21 elementów (włączając 0),

rem numerowane od -15 do 5

Pola zmiennych w podprogramach lub funkcjach zwymiarowane za pomocą instrukcji ReDim na poziomie procedury mogą być dynamiczne, niezależnie od typu. Normalnie zakres tablicy można definiować raz i nie można go modyfikować. Wewnątrz procedury tablicę można zadeklarować za pomocą instrukcji ReDim z parametrami numerycznych definiującymi zakres wielkości pól.

## Przykład:

    Sub ExampleRedim
    Dim iVar() As Integer, iCount As Integer
    ReDim iVar(5) As Integer
    For iCount = 1 To 5
        iVar(iCount) = iCount
    Next iCount
    ReDim iVar(10) As Integer
    For iCount = 1 To 10
        iVar(iCount) = iCount
    Next iCount
    End Sub