lettura facile

Option Base in una macro Excel

In questa lezione del corso sulle macro Excel ti parlo dell'istruzione Option Base

Option Base

Questa istruzione ti consente di scegliere se vuoi che gli array inizino con l'indice 0 o con l'indice 1.

Nelle macro Excel l'indice di base degli array è 0 di default. Ciò significa che il primo elemento di un array ha un indice di 0, il secondo ha un indice di 1 e così via.

Inserendo l'istruzione Option Base 1 l'indice di base degli array comincia da 1

Option Base 1

Dopo questa istruzione tutti gli array creati all'interno della macro hanno come indice di base il numero 1.

In altre parole, il primo elemento di ogni array ha indice 1.

Può sembrare una cosa marginale, ma può essere molto utile in determinate circostanze.

Nota. L'istruzione OPTION BASE ha effetto solo sulla macro in cui la inserisci. Non ha alcun effetto sulle altre macro o sulle celle del foglio di lavoro.

Se vuoi tornare all'impostazione di default (indice di base 0) puoi inserire la seguente riga di codice

Option Base 0

Dove va inserita l'istruzione Option Base?

Devi inserire l'istruzione Option Base all'inizio del modulo, eventualmente subito dopo l'istruzione Option Explicit.

Non devi inserila nelle subroutine o nelle funzioni della macro.

Ti faccio un esempio pratico.

  1. Option Base 1
  2.  
  3. Sub ArrayTest()
  4. Dim myArray(1 To 3) As Integer
  5. myArray(1) = 10
  6. myArray(2) = 20
  7. myArray(3) = 30
  8. For i = 1 To 3
  9. Debug.Print myArray(i)
  10. Next i
  11. End Sub

In questa macro l'istruzione Option Base 1 imposta l'indice base degli array a 1.

Ciò significa che il primo elemento dell'array ha indice 1 anziché 0, come avviene di solito in VBA.

Nella macro viene dichiarato un array chiamato "myArray" con dimensione 1-3 e sono assegnati i valori 10, 20 e 30 ai suoi primi elementi.

Infine, un ciclo For stampa i valori degli elementi dell'array.

Nota. Senza l'istruzione Option Base 1 l'indice base dell'array sarebbe stato 0. In questo caso avresti dovuto assegnare i valori partendo dall'indice 0.

myArray(0) = 10
myArray(1) = 20
myArray(2) = 30

Inoltre, il ciclo For avrebbe dovuto iniziare da 0 e finire a 2, invece che da 1 a 3 come in questo esempio.




Se qualcosa non ti è chiaro, scrivi la tua domanda nei commenti.




FacebookTwitterLinkedinLinkedin