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:

Diagram instrukcji Dim


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

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.

fragment prymitywnych typów danych

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 w postaci ciągu znaków składająca się z maksymalnie 64 000 znaków ASCII.

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.

Fragment znaku deklaracji typu

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.

fragment tablicy

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

Prosimy o wsparcie!