VBA - Arrays
Sappiamo molto bene che una variabile è un contenitore per memorizzare un valore. A volte, gli sviluppatori sono in grado di contenere più di un valore in una singola variabile alla volta. Quando una serie di valori viene archiviata in una singola variabile, è nota comearray variable.
Dichiarazione di matrice
Gli array vengono dichiarati nello stesso modo in cui è stata dichiarata una variabile, tranne per il fatto che la dichiarazione di una variabile array utilizza le parentesi. Nell'esempio seguente, la dimensione dell'array è menzionata tra parentesi.
'Method 1 : Using Dim
Dim arr1()	'Without Size
'Method 2 : Mentioning the Size
Dim arr2(5)  'Declared with size of 5
'Method 3 : using 'Array' Parameter
Dim arr3
arr3 = Array("apple","Orange","Grapes")- Sebbene la dimensione dell'array sia indicata come 5, può contenere 6 valori poiché l'indice dell'array inizia da ZERO. 
- L'indice dell'array non può essere negativo. 
- Gli array VBScript possono memorizzare qualsiasi tipo di variabile in un array. Quindi, un array può memorizzare un numero intero, una stringa o caratteri in una singola variabile di array. 
Assegnazione di valori a un array
I valori vengono assegnati all'array specificando un valore di indice dell'array rispetto a ciascuno dei valori da assegnare. Può essere una stringa.
Esempio
Aggiungi un pulsante e aggiungi la seguente funzione.
Private Sub Constant_demo_Click()
   Dim arr(5)
   arr(0) = "1"           'Number as String
   arr(1) = "VBScript"    'String
   arr(2) = 100 		     'Number
   arr(3) = 2.45 		     'Decimal Number
   arr(4) = #10/07/2013#  'Date
   arr(5) = #12.45 PM#    'Time
  
   msgbox("Value stored in Array index 0 : " & arr(0))
   msgbox("Value stored in Array index 1 : " & arr(1))
   msgbox("Value stored in Array index 2 : " & arr(2))
   msgbox("Value stored in Array index 3 : " & arr(3))
   msgbox("Value stored in Array index 4 : " & arr(4))
   msgbox("Value stored in Array index 5 : " & arr(5))
End SubQuando si esegue la funzione di cui sopra, produce il seguente output.
Value stored in Array index 0 : 1
Value stored in Array index 1 : VBScript
Value stored in Array index 2 : 100
Value stored in Array index 3 : 2.45
Value stored in Array index 4 : 7/10/2013
Value stored in Array index 5 : 12:45:00 PMArray multidimensionali
Gli array non sono limitati solo a una singola dimensione, tuttavia possono avere un massimo di 60 dimensioni. Gli array bidimensionali sono quelli più comunemente usati.
Esempio
Nell'esempio seguente, una matrice multidimensionale viene dichiarata con 3 righe e 4 colonne.
Private Sub Constant_demo_Click()
   Dim arr(2,3) as Variant	' Which has 3 rows and 4 columns
   arr(0,0) = "Apple" 
   arr(0,1) = "Orange"
   arr(0,2) = "Grapes"           
   arr(0,3) = "pineapple" 
   arr(1,0) = "cucumber"           
   arr(1,1) = "beans"           
   arr(1,2) = "carrot"           
   arr(1,3) = "tomato"           
   arr(2,0) = "potato"             
   arr(2,1) = "sandwitch"            
   arr(2,2) = "coffee"             
   arr(2,3) = "nuts"            
           
   msgbox("Value in Array index 0,1 : " &  arr(0,1))
   msgbox("Value in Array index 2,2 : " &  arr(2,2))
End SubQuando si esegue la funzione di cui sopra, produce il seguente output.
Value stored in Array index : 0 , 1 : Orange
Value stored in Array index : 2 , 2 : coffeeDichiarazione ReDim
L'istruzione ReDim viene utilizzata per dichiarare le variabili di matrice dinamica e allocare o riallocare lo spazio di archiviazione.
Sintassi
ReDim [Preserve] varname(subscripts) [, varname(subscripts)]Descrizione dei parametri
- Preserve - Un parametro facoltativo utilizzato per preservare i dati in un array esistente quando si modifica la dimensione dell'ultima dimensione. 
- Varname - Un parametro obbligatorio, che denota il nome della variabile, che dovrebbe seguire le convenzioni di denominazione delle variabili standard. 
- Subscripts - Un parametro obbligatorio, che indica la dimensione dell'array. 
Esempio
Nell'esempio seguente, un array è stato ridefinito e quindi i valori conservati quando la dimensione esistente dell'array viene modificata.
Note - Dopo aver ridimensionato un array più piccolo di quanto fosse originariamente, i dati negli elementi eliminati andranno persi.
Private Sub Constant_demo_Click()
   Dim a() as variant
   i = 0
   redim a(5)
   a(0) = "XYZ"
   a(1) = 41.25
   a(2) = 22
  
   REDIM PRESERVE a(7)
   For i = 3 to 7
   a(i) = i
   Next
  
   'to Fetch the output
   For i = 0 to ubound(a)
      Msgbox a(i)
   Next
End SubQuando si esegue la funzione di cui sopra, produce il seguente output.
XYZ
41.25
22
3
4
5
6
7Metodi di matrice
Ci sono varie funzioni integrate in VBScript che aiutano gli sviluppatori a gestire gli array in modo efficace. Di seguito sono elencati tutti i metodi utilizzati insieme agli array. Fare clic sul nome del metodo per conoscerlo in dettaglio.
| Sr.No. | Descrizione della funzione | 
|---|---|
| 1 | LBound Una funzione, che restituisce un numero intero che corrisponde al più piccolo indice degli array dati. | 
| 2 | UBound Una funzione, che restituisce un numero intero che corrisponde al più grande indice degli array dati. | 
| 3 | Diviso Una funzione, che restituisce una matrice che contiene un numero specificato di valori. Dividi in base a un delimitatore. | 
| 4 | Aderire Una funzione, che restituisce una stringa che contiene un numero specificato di sottostringhe in una matrice. Questa è una funzione esattamente opposta del metodo Split. | 
| 5 | Filtro Una funzione, che restituisce una matrice in base zero che contiene un sottoinsieme di una matrice di stringhe in base a criteri di filtro specifici. | 
| 6 | IsArray Una funzione, che restituisce un valore booleano che indica se la variabile di input è o meno un array. | 
| 7 | Cancellare Una funzione, che recupera la memoria allocata per le variabili dell'array. | 
