Contingut
Índex 🔎︎

# Ús de variables

Tot seguit es descriu l'ús bàsic de variables al LibreOffice Basic.

## Convencions de nomenclatura per a identificadors de variables

Un nom de variable pot constar d'un màxim de 255 caràcters. El primer caràcter d'un nom de variable ha de ser una lletra A-Z o a-z. També es poden utilitzar nombres en un nom de variable, però els signes de puntuació i els caràcters especials no es permeten, excepte el caràcter de subratllat («_»). Al LibreOffice Basic els identificadors de variable no distingeixen les majúscules de les minúscules. Els noms de variable poden incloure espais però s'han de col·locar entre claudàtors si en contenen.

Exemples d'identificadors de variable:

        ElMeuNombre=5      'Correcte'
        ElMeuNombre5=15    'Correcte'
        ElMeuNombre_5=20   'Correcte'
        El meu nombre=20    'No vàlid; les variables amb espais han d'envoltar-se amb claudàtors'
        [El meu nombre]=12  'Correcte'
        DéjàVu=25       'No vàlid; no s'hi permeten caràcters especials'
        5ElMeuNombre=12    'No vàlid; les variables no poden començar amb un nombre'
        Nombre,meu=12  'No vàlid; no s'hi permeten signes de puntuació'

## Declaració de variables

Al LibreOffice Basic no cal que declareu les variables explícitament. Una declaració de variable es pot dur a terme amb l'expressió Dim. Podeu declarar més d'una variable en qualsevol moment separant els noms amb una coma. Per a definir el tipus de variable, utilitzeu un signe de declaració de tipus després del nom, o la paraula clau apropiada.

Exemples de declaracions de variables:

        Dim a$               'Declara la variable «a» com a String'
        Dim a As String      'Declara la variable «a» com a String'
        Dim a$, b As Integer 'Declara una variable com a String i l'altra com a Integer'
        Dim c As Boolean     'Declara c com a variable booleana que pot ser CERTA o FALSA'

Un cop hàgiu declarat que una variable és d'un cert tipus, no podeu tornar a declarar la variable sota el mateix nom a un tipus diferent.

When you declare multiple variables in a single line of code you need to specify the type of each variable. If the type of a variable is not explicitly specified, then Basic will assume that the variable is of the Variant type.

      ' Both variables "a" and "b" are of the Integer type
      Dim a As Integer, b As Integer
      ' Variable "c" is a Variant and "d" is an Integer
      Dim c, d As Integer
      ' A variable can also be explicitly declared as a Variant
      Dim e As Variant, f As Double

The Variant type is a special data type that can store any kind of value. To learn more, refer to the section The Variant type below.

### Forçament de declaracions de variables

Per a forçar la declaració de variables, utilitzeu l'ordre següent:

    Option Explicit

L'expressió Option Explicit ha de ser la primera línia del mòdul, abans de la primera SUB. Generalment, només les matrius s'han de declarar explícitament. La resta de variables es declaren segons el caràcter de declaració de tipus o, si s'omet, segons el tipus Single (senzill) per defecte.

## Tipus de variables

El LibreOffice Basic admet quatre classes de variables:

- Les variables numèriques poden contenir valors de nombre. Algunes variables s'utilitzen per emmagatzemar nombres grans o petits, i d'altres s'utilitzen per a nombres de coma flotant o fraccionaris.

- Les variables de cadena contenen cadenes de caràcters.

- Les variables booleanes contenen el valor CERT o el valor FALS.

- Les variables d'objecte poden emmagatzemar objectes de diferents tipus, com ara taules i documents a dins d'un document.

### Variables d'enters

Les variables d'enter van de -32.768 a 32.767. Si assigneu un valor de coma flotant a una variable d'enter, els llocs decimals s'arrodoneixen a l'enter següent. Les variables d'enter es calculen ràpidament en procediments i són apropiades per a variables de recompte en bucles. Una variable d'enter només requereix dos bytes de memòria. El caràcter de declaració de tipus és «%».

    Dim Variable%
    Dim Variable As Integer

### Variables d'enter gran

Les variables d'enter gran van de -2.147.483.648 a 2.147.483.647. Si assigneu un valor de coma flotant a una variable d'enter gran, els llocs decimals s'arrodoneixen a l'enter següent. Les variables d'enter gran es calculen ràpidament en procediments i són adequades per a variables de recompte en bucles per a valors elevats. Una variable d'enter gran requereix quatre bytes de memòria. El caràcter de declaració de tipus és «&».

    Dim Variable&
    Dim Variable As Long

### Variables decimals

Les variables decimals poden prendre nombres positius o negatius, o zero. La precisió és de fins a 29 dígits.

Podeu utilitzar els signes més (+) o menys (-) com a prefixos per a nombres decimals (amb espais o sense).

Si un nombre decimal s'assigna a una variable entera, el LibreOffice Basic arrodoneix la xifra cap amunt o cap avall.

### Variables simples

Single variables can take positive or negative values ranging from 3.402823 x 10E38 to 1.401298 x 10E-45. Single variables are floating-point variables, in which the decimal precision decreases as the non-decimal part of the number increases. Single variables are suitable for mathematical calculations of average precision. Calculations require more time than for Integer variables, but are faster than calculations with Double variables. A Single variable requires 4 bytes of memory. The type-declaration character is "!".

    Dim Variable!
    Dim Variable As Single

### Variables dobles

Double variables can take positive or negative values ranging from 1.79769313486232 x 10E308 to 4.94065645841247 x 10E-324. Double variables are floating-point variables, in which the decimal precision decreases as the non-decimal part of the number increases. Double variables are suitable for precise calculations. Calculations require more time than for Single variables. A Double variable requires 8 bytes of memory. The type-declaration character is "#".

    Dim Variable#
    Dim Variable As Double

### Variables de moneda

Les variables de moneda s'emmagatzemen internament com a nombres de 64 bits (8 Bytes) i es mostren com a nombre de decimal fix amb 15 llocs no decimals i 4 llocs decimals. Els valors van de -922337203685477,5808 a +922337203685477,5807. Les variables de moneda s'utilitzen per calcular els valors de moneda amb una precisió elevada. El caràcter de declaració de tipus és "@".

    Dim Variable@
    Dim Variable As Currency

### Literals per a enters

Numbers can be encoded using octal and hexadecimal forms.

      xi = &o13 '    8 + 3
      ci = &h65 ' 6*16 + 5
      MAX_Integer =  &o77777 '  32767 = &h7FFF
      MIN_Integer = &o100000 ' -32768 = &h8000
      MAX_Long = &h7fffffff '  2147483647 = &o17777777777
      MIN_Long = &h80000000 ' -2147483648 = &o20000000000

### Variables de cadenes

Les variables de cadena poden contenir cadenes de caràcters amb fins a 2.147.483.648 caràcters. Cada caràcter s'emmagatzema com el valor Unicode corresponent. Les variables de cadena són adequades per al processament de paraules dins dels programes i per a l'emmagatzematge temporal de qualsevol caràcter no imprimible fins a una longitud màxima de 2 Gbytes. La memòria requerida per a emmagatzemar variables de cadena depèn del nombre de caràcters de la variable. El caràcter de declaració de tipus és «$».

A les funcions de cadena BÀSICA, el primer caràcter de la cadena té l'índex 1.

    Dim Variable$
    Dim Variable As String

### Variables booleanes

Les variables booleanes només emmagatzemen dos valors: CERT o FALS. Un número 0 s'avalua en FALS, la resta de valors s'avaluen en CERT.

    Dim Variable As Boolean

### Variables de data

Les variables de data només poden contenir valors de data i d'hora emmagatzemats en un format intern. Els valors assignats a les variables de data amb Dateserial, Datevalue, Timeserial o Timevalue es converteixen automàticament al format intern. Les variables de data es converteixen en números normals mitjançant les funcions Day, Month, Year o Hour, Minute, Second. El format intern permet una comparació dels valors de data/hora calculant la diferència entre dos nombres. Aquestes variables només es poden declarar amb la paraula clau Date.

    Dim Variable As Date

### Literals per a dates

Date literals allow to specify unambiguous date variables that are independent from the current language. Literals are enclosed between hash signs #. Possible formats are:

- #yyyy-mm-dd#

- #mm/dd/yyyy#

      start_date = #12/30/1899# ' = 1
      dob = #2010-09-28#

## El tipus Variant

Variables declared as Variant can handle any data type. This means that the actual data type is defined during runtime as a value is assigned to the variable.

There are three main ways to create a Variant variable, as shown below:

      Dim varA            ' The type is not specified, hence the variable is a Variant
      Dim varB as Variant ' The variable is explicitly declared as a Variant
      varC = "abc"        ' Previously undeclared variables are treated as Variants

The example below uses the TypeName function to show how the type of a Variant variable changes upon assignment.

      Dim myVar As Variant
      MsgBox TypeName(myVar) ' Empty
      myVar = "Hello!"
      MsgBox TypeName(myVar) ' String
      myVar = 10
      MsgBox TypeName(myVar) ' Integer

A Variant variable is initialized with the Empty special data type. You can use the IsEmpty function to test if a variable is an Empty Variant.

You can also use the keyword Any to declare a variable as a Variant. However, Any is deprecated and is available for backward compatibility.

Arguments with type Variant or Any passed in function calls are not checked for their types.

      Dim myVar As Any ' Variable "myVar" is a Variant

## Valors de variable inicials

Tan aviat com es declara una variable, s'estableix automàticament al valor "Nul". Tingueu en compte les convencions següents:

A les variables numèriques se'ls assigna el valor "0" tan aviat com es declaren.

Les variables de data tenen assignat el valor 0 internament; equivalent a convertir el valor a "0" amb la funció Day, Month, Year o Hour, Minute, Second.

Les variables de cadena tenen assignada una cadena buida ("") quan es declaren.

## Matrius

El LibreOffice Basic coneix matrius d'una dimensió o de diverses dimensions, definides per un tipus de variable especificat. Les matrius serveixen per editar llistes i taules en programes. Es pot accedir als elements individuals d'una matriu a través d'un índex numèric.

Les matrius s'han de declarar amb l'expressió Dim. Hi ha diverses maneres de definir el rang d'índex d'una matriu:

        Dim Text$(20)       '21 elements numbered from 0 to 20'
        Dim Text$(5,4)      '30 elements (a matrix of 6 x 5 elements)'
        Dim Text$(5 To 25)  '21 elements numbered from 5 to 25'
        Dim Text$(-15 To 5) '21 elements (including 0), numbered from -15 to 5'

L'interval d'índex pot incloure nombres positius i negatius.

## Constants

Les constants tenen un valor fix. Només es defineixen una vegada al programa i no es poden tornar a definir més endavant:

    Const ConstName=Expression

Temes relacionats

Basic Constants

Dim Statement