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 instrukzioaren diagrama


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.

jatorrizko datu moten zatia

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.

Mota deklarazio-karaktereen zatia

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.

matrize-zatia

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

Emaguzu laguntza!