Expressió ReDim
Declara una variable o una matriu.
Sintaxi:
[ReDim]Dim VarName [(start To end)] [As VarType][, VarName2 [(start To end)] [As VarType][,...]]
Opcionalment, podeu afegir la paraula clau Preserve com a paràmetre per conservar el contingut de la matriu que es redimensiona.
Paràmetres:
VarName: Qualsevol nom de variable o de matriu.
Start, End: Valors numèrics o constants que defineixen el nombre d'elements (NombreElements=(fi-inici)+1) i l'interval d'índex.
Start i End poden ser expressions numèriques si ReDim s'utilitza al nivell de procediment.
VarType: Paraula clau que declara el tipus de dades d'una variable.
Paraula clau: Tipus de variable
Bool: Variable booleana (Cert, Fals)
Data: Variable de data
Double: Variable de coma flotant doble (1.79769313486232x10E308 - 4.94065645841247x10E-324)
Integer: Variable d'enter (-32768 - 32767)
Llarg: Variable d'enter llarga (-2,147,483,648 - 2,147,483,647)
Object: Variable Object (només es pot definir posteriorment amb Set!)
[Single]: Variable de coma flotant senzilla (3,402823x10E38 - 1,401298x10E-45). Si no s'especifica cap paraula clau, una variable es defineix com a senzilla, a menys que s'utilitze una expressió de DefBool a DefVar.
Cadena: Variable de cadena que consta d'un màxim de 64.000 caràcters ASCII.
Variant: Tipus de variable de variant (pot contindre tots els tipus i s'estableix per definició).
Al LibreOffice Basic no cal que declareu les variables explícitament. No obstant això, cal que declareu una matriu abans de poder utilitzar-les. Podeu declarar una variable amb l'expressió Dim, fent servir comes per separar múltiples declaracions. Per declarar un tipus de variable, introduïu un caràcter de declaració de tipus després del nom, o utilitzeu la paraula clau corresponent.
El LibreOffice Basic admet matrius de dimensió senzilla o múltiple que es defineixen amb un tipus de variable especificat. Les matrius són adequades si el programa conté llistes o taules que voleu editar. L'avantatge de les matrius és que és possible adreçar elements individuals segons els índexs, que es poden formular com a expressions numèriques o variables.
Existeixen dues maneres de definir l'interval d'índexs per a matrius declarades amb l'expressió Dim:
DIM text(20) As String REM 21 elements numerats de 0 a 20
DIM text(5 to 25) As String REM 21 elements numerats del 5 al 25
DIM text$(-15 to 5) As String REM 21 elements (0 inclòs),
rem numbered from -15 to 5
Els camps de variable, independentment del tipus, poden convertir-se en dinàmics si es dimensionen amb ReDim al nivell de procediment en subrutines o funcions. Normalment, només podeu establir l'interval d'una matriu un cop i no podeu modificar-lo. Dins d'un procediment, podeu declarar una matriu amb l'expressió ReDim amb expressions numèriques per definir l'interval de les mides del camp.
Exemple:
Sub ExampleRedim
Dim iVar() As Integer, iCount As Integer
ReDim iVar(5) As Integer
For iCount = 1 To 5
iVar(iCount) = iCount
Next iCount
ReDim iVar(10) As Integer
For iCount = 1 To 10
iVar(iCount) = iCount
Next iCount
End Sub