Obsah
Rejstřík 🔎︎

# Příkaz Dim

Deklaruje proměnné nebo pole.

Pokud jsou proměnné odděleny čárkou (např. Dim v1, v2, v3 As String), první z nich se definují jako proměnné Variant. Chcete-li definice oddělit, použijte nový řádek nebo dvojtečku (:).

      Dim text As String
      Dim pv As com.sun.star.beans.PropertyValue, d As Date
      Dim Units as Integer : Dim EULER As Double

Dim deklaruje místní proměnnou v podprogramu. Globální proměnné se deklarují příkazy Global, Public nebo Private.

### Syntaxe:

    Dim proměnná [(začátek To konec)] [As typProměnné][, proměnná2[znak] [(začátek To konec)] [,...]]

### Parametry:

proměnná: Název proměnné nebo pole.

typProměnné: Klíčové slovo určující datový typ proměnné.

Byte: Bajtová proměnná (0–255)

Boolean: Booleovská proměnná (True, False)

Currency: Proměnná měny (měna se 4 desetinnými místy)

Date: Datová proměnná

Double: Proměnná v plovoucí řádové čárce (1,79769313486232 × 10E308 – 4,94065645841247 × 10E-324)

Integer: Celočíselná proměnná (−32768 – 32767)

Long: Dlouhá celočíselná proměnná (-2 147 483 648 – 2 147 483 647)

Object: Objektová proměnná (Poznámka: tuto proměnnou lze následně definovat pomocí Set)

Single: Proměnná v plovoucí řádové čárce (3,402823 x 10E38 - 1,401298 x 10E-45).

String: Řetězec obsahující maximálně 64000 ASCII znaků.

Variant: Proměnná typu Variant (obsahuje všechny typy, určuje se v definici). Jestliže není zadán název typu, proměnné se automaticky přiřadí typ Variant, dokud se nepoužije některý z příkazů DefBool až DefVar.

object: objekt Universal Network (UNO) nebo instance objektu ClassModule.

znak: Speciální znak, který deklaruje datový typ proměnné.

V LibreOffice Basic není nutné proměnné explicitně deklarovat. Ovšem je nutné před použitím deklarovat pole. Proměnnou je možné deklarovat pomocí příkazu Dim a několik deklarací oddělit čárkami (,). Chcete-li deklarovat typ proměnné, použijte znak typové deklarace následovaný názvem nebo odpovídající klíčové slovo.

Declaration character | Variable type name
% | Integer
& | Long
! | Single
# | Double
$ | String
@ | Currency

pole: Deklarace pole.

začátek, konec: Číselné hodnoty nebo konstanty, které určují počet prvků (PočetPrvků=(konec-začátek)+1) a rozsah indexu.

začátek a konec mohou být číselné výrazy, pokud se v podprogramu používá ReDim.

LibreOffice Basic podporuje jedno- i vícerozměrná pole, která se definují určeným typem proměnné. Pole jsou vhodná, pokud chcete v programu použít seznam či tabulku, které chcete upravovat. Výhodou polí je, že k jednotlivým prvkům je možné přistupovat pomocí indexů, které lze vyjádřit číselným výrazem nebo proměnnou.

Pole se deklarují pomocí příkazu Dim. Rozsah indexů pro pole lze nastavit více způsoby:

      Dim text(20) As String ' 21 prvků číslovaných od 0 do 20
      Dim value(5 to 25) As Integer ' 21 prvků číslovaných od 5 do 25
      Dim amount(-15 to 5) As Currency ' 21 prvků (včetně 0) číslovaných od -15 to 5
      REM dvourozměrné pole
      Dim table$(20,2) ' 63 prvků; první řádek od 0 to 20, druhý řádek od 0 do 20 a třetí řádek od 0 do 20.

Pole je možné deklarovat jako dynamické, pokud v podprogramu, kde chcete s polem pracovat, definujete rozměry pomocí příkazu ReDim. Obecně lze rozměry určit jen jednou. Poté je nelze změnit. V podprogramu je možné deklarovat pole pomocí ReDim. Rozměry je možné definovat pouze číselným výrazem. To zaručuje, že jsou pole velká pouze tak, jak je třeba.

### Příklad:

    Sub ExampleDim1
    Dim sVar As String
    Dim iVar As Integer
        sVar = "Office"
    End Sub

    Sub ExampleDim2
      ' Dvourozměrné datové pole
        Dim stext(20,2) As String
      Const sDim as String = " Rozměr:"
      For i = 0 To 20
        For ii = 0 To 2
            stext(i,ii) = str(i) & sDim & str(ii)
        Next ii
      Next i
      For i = 0 To 20
        For ii = 0 To 2
            MsgBox stext(i,ii)
        Next ii
      Next i
    End Sub