Dichiarare le variabili

Se hai mai programmato delle macro, probabilmente hai familiarità con il modo in cui si definiscono le variabili utilizzando la parola chiave Dim. Ad esempio, puoi definire una variabile integer con il nome MyVar come segue:

Dim MyVar As Integer

 

Questo è molto semplice e funzionerà bene nel tuo codice. Per salvare alcune righe nel codice potresti essere tentato di definire più variabili per riga:

Dim x, y, z As Integer

 

In alcune versioni del linguaggio BASIC, questo definirà e inizializzerà tre variabili, ciascuna come numero intero. Anche in VBA sembra funzionare correttamente e non viene generato alcun errore. Tuttavia, c’è un piccolo problema: solo l’ultima variabile (z) è effettivamente definita come un numero intero. Puoi vedere come funziona utilizzando il codice seguente:

Sub DimTest()
	Dim x, y, z As Integer
	Dim sTemp As String

	sTemp = "x è del tipo " & VarType(x) & vbCrLf
	sTemp = sTemp & "y è del tipo " & VarType(y) & vbCrLf
	sTemp = sTemp & "z è del tipo " & VarType(z)
	
	MsgBox sTemp
End Sub

 

Quando si esegue la macro, la finestra di messaggio mostra che il tipo di variabile per x e y è 0, il che significa che la variabile è una variant (il tipo di dati predefinito per le variabili non dichiarate). Solo l’ultima finestra di messaggio (per z) mostra un tipo di variabile 2, che significa numero intero.

La soluzione è assicurarti di dichiarare le tue variabili una per riga, o usando la sintassi completa per ogni variabile, come di seguito:

Dim x As Integer, y As Integer, z As Integer

 

Ti è stato utile?