Spis treści

# Instrukcja Dim

Deklaruje zmienne lub tablice.

Jeśli zmienne są oddzielone przecinkami – na przykład Dim v1, v2, v3 As String – pierwsze zmienne zostaną zdefiniowane jako zmienne typu Variant. Nowa linia lub dwukropek (:) pomaga rozdzielić definicje zmiennych.

      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 lokalne zmienne w podprogramach. Zmienne globalne są deklarowane za pomocą instrukcji Global, Public lub Private.

### Składnia:

    Dim variable [(start To end)] [As typename][, variable2[char] [(start To end)] [,...]]

Operator New jest opcjonalny przy ustawianiu opcji Option Compatible.

### Parametry:

variable: Dowolna nazwa zmiennej lub tablicy.

typename: Słowo kluczowe, które deklaruje typ danych zmiennej.

Byte: Zmienna bajtowa (0-255)

Boolean: Zmienna logiczna (True, False)

Currency: Zmienna walutowa (waluta z 4 miejscami po przecinku)

Date: Zmienna daty

Double: Zmienna zmiennoprzecinkowa podwójnej precyzji (1,79769313486232 x 10E308 - 4,94065645841247 x 10E-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 obiektowa (Uwaga: ta zmienna może być później zdefiniowana tylko za pomocą Set!)

Single: Zmienna zmiennoprzecinkowa typu pojedyncza precyzja (w zakresie od 3,402823 x 10E38 do 1,401298 x 10E-45).

String: zmienna łańcuchowa składająca się z maksymalnie 2 147 483 647 znaków.

Variant: Typ zmiennej typu Variant (zawiera wszystkie typy określone przez definicję). Jeśli nazwa typu nie jest określona, zmienne są automatycznie definiowane jako typ Variant, chyba że użyto instrukcji z DefBool do DefVar.

object: Obiekt UNO (Universal Network Object) lub instancja obiektu ClassModule.

char: Znak specjalny, który deklaruje typ danych zmiennej.

W LibreOffice Basic nie ma potrzeby jawnego deklarowania zmiennych. Zanim jednak będziesz móc z nich korzystać, musisz zadeklarować tablice. Możesz zadeklarować zmienną za pomocą instrukcji Dim, używając przecinków (,) do oddzielenia wielu deklaracji. Aby zadeklarować typ zmiennej, wprowadź znak deklaracji typu po nazwie lub użyj odpowiedniej nazwy słowa kluczowego typu.

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

array: Deklaracja tablicowa.

start, end: Wartości liczbowe lub stałe określające liczbę elementów (NumberElements=(end-start)+1) i zakres indeksu.

start i end mogą być wyrażeniami numerycznymi, jeśli ReDim zastosowano na poziomie procedury.

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.

Tablice są deklarowane za pomocą instrukcji Dim. Istnieje wiele sposobów definiowania zakresu indeksu:

      Dim text(20) As String ' 21 elementów ponumerowanych od 0 do 20
      Dim value(5 to 25) As Integer ' 21 wartości ponumerowanych od 5 do 25
      Dim amount(-15 to 5) As Currency ' 21 kwot (w tym 0), ponumerowanych od -15 do 5
      REM Dwuwymiarowe pole danych
      Dim table$(20,2) ' 63 elementy; pierwszy rząd od 0 do 20, drugi rząd od 0 do 20 i trzeci rząd od 0 do 20.

Typ tablicy można zadeklarować jako dynamiczny, jeśli instrukcja ReDim określa liczbę wymiarów w podprogramie standardowym lub funkcji zawierającej tablicę. Zasadniczo wymiar tablicy można zdefiniować tylko raz i nie można go modyfikować. W podprogramie możesz zadeklarować tablicę za pomocą ReDim. Wymiary można definiować tylko za pomocą wyrażeń numerycznych. Dzięki temu pola są tylko tak duże, jak to konieczne.

### Przykład:

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

    Sub ExampleDim2
      ' Dwuwymiarowe pole danych
        Dim stext(20,2) As String
      Const sDim As String = " Wymiar:"
      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

Tematy pokrewne

Operator New