Edukiak
Indizea 🔎︎

# Dim instrukzioa

Aldagaiak edo matrizeak deklaratzen ditu.

Aldagaiak komaz bananduta badaude, adibidez Dim v1, v2, v3 As String, lehenak Variant aldagai gisa definituko dira. Lerro berria edo bi punturen (:) ikurra errabilita, aldagai-definizioak bananduta geratuko dira.

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

Dim instrukzioak azpierrutinen barruko aldagai lokalak deklaratzen ditu. Aldagai globalak Global, Public edo Private instrukzioan deklaratzen dira.

### Sintaxia:

    Dim aldagaia [(start To end)] [As motaizena][, aldagaia2[char] [(start To end)] [,...]]

### Parametroak:

aldagaia: Edozein aldagairen edo matrizeren izena.

tipoizena: Aldagai baten datu mota deklaratzen duen gako-hitza.

Byte: Byte motako aldagaia (0-255)

Boolean: Aldagai boolearra (True, False)

Currency: Moneta motako aldagaia (moneta 4 dezimalekin)

Date: data-aldagaia

Double: Doitasun bikoitzeko koma mugikorreko aldagaia (1,79769313486232 x 10E308 - 4,94065645841247 x 10E-324)

Integer: osoko aldagaia (-32768 - 32767)

Long: osoko aldagai luzea (-2.147.483.648 - 2.147.483.647)

Object: Objektu motako aldagaia (Oharra: Aldagai hau Set bidez soilik definitu daiteke!)

Single: doitasun bakuneko koma mugikorraren aldagaia (3,402823 x 10E38 - 1,401298 x 10E-45).

String: gehienez 64.000 ASCII karaktere dituen kate-aldagaia.

Variant: Variant motako aldagaia (mota guztiak ditu, definizioaren arabera zehaztuak). Mota baten izena zehazten ez bada, aldagaiak automatikoki Variant motakoak direla definituko da, DefBool eta DefVar arteko instrukzio bat erabiltzen bada salbu.

object: Universal Network object (UNO) objektua edo ClassModule objektu-instantzia.

char: Aldagai baten datu mota deklaratzen duen karaktere berezia.

LibreOffice Basic lengoaian ez dira aldagaiak esplizituki deklaratu behar. Hala ere, matrizeak deklaratu behar dira haiek erabili baino lehen. Dim instrukzioa erabilita deklaratu daitezke aldagaiak, komak (,) erabilita deklarazio anitz banatzeko. Aldagai mota bat deklaratzeko, sartu mota-deklarazioko karaktere bat eta haren ondoren izen bat, edo erabili hari dagokion motaren gako-hitz baten izena.

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

matrizea: Matrize-deklarazioa.

hasiera, amaiera: Zenbakizko balioak edo konstanteak, elementu kopurua (ElementuKopurua=(amaiera-hasiera)+1) eta indize-barrutia definitzen dituztenak.

hasiera eta amaiera zenbakizko adierazpenak izan daitezke ReDim prozedura-mailan aplikatzen bada.

LibreOffice Basic-ek array bakunak edo anizkoitzak erabiltzen ditu, eta array horiek aldagai mota jakin batek zehazten ditu. Matrizeak egokiak dira programak editatu beharreko zerrendak edo taulak baditu. Matrizeen abantaila da elementu indibidualak indizeak kontuan hartuta helbideratu daitezkeela, eta horiek zenbakizko adierazpen edo aldagai gisa zehaztu daitezke.

Matrizeak Dim instrukzioarekin deklaratzen dira. Indize-barrutia definitzeko modu anitz dago:

      Dim text(20) As String ' 21 elementu, 0 eta 20 arteko zenbakiak dituztenak
      Dim value(5 to 25) As Integer ' 21 balio, 5 eta 25 arteko zenbakiak dituztenak
      Dim amount(-15 to 5) As Currency ' 21 kantitate (0 barne), -15 eta 5 arteko zenbakiak dituztenak
      REM Bi dimentsiotako datu-eremua
      Dim table$(20,2) ' 63 elementu; 0 eta 20 artekoak 1. mailan, 0 eta 20 artekoak 2. mailan eta 0 eta 20 artekoak 3. mailan.

Matrize mota bat dinamiko modura deklaratu daiteke ReDim instrukzio batek matrizea duen azpierrutinaren edo funtzioaren dimentsio kopurua definitzen badu. Oro har, matrize-dimentsio bat behin bakarrik definitu daiteke, eta gero ezin da aldatu. Azpierrutina baten barruan, ReDim erabili daiteke matrize bat deklaratzeko. Dimentsioak zenbakizko adierazpenekin soilik definitu daitezke. Horrek ziurtatzen du eremuak ez direla beharrezkoa dena baino handiagoak.

### Adibidea:

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

    Sub ExampleDim2
      ' Bi dimentsiotako datu-eremua
        Dim stext(20,2) As String
      Const sDim as String = " Neurria:"
      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