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:

Diagram příkazu Dim


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

Operátor New je při nastavení možnosti Option Compatible volitelný.


Parametry:

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

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

Primitivní datové typy

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ů DefBoolDefVar.

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

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

Deklarace typů pomocí znaků

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.

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

Podpořte nás!