Variabili e Tipi di Dati
Scorri per mostrare il menu
Ogni procedura che scrivi ha bisogno di uno spazio dove conservare i valori durante l'esecuzione — il nome di un cliente, un totale parziale, un flag sì/no. Questa è una variabile: una scatola etichettata in memoria in cui puoi inserire un valore e recuperarlo in seguito. Ne crei una con Dim (abbreviazione di "dimension"), specificando subito a VBA che tipo di valore conterrà:
Dim productName As String
Dim currentStock As Integer
Dim unitPrice As Double
Ogni riga riserva uno slot etichettato: productName può contenere solo testo, currentStock solo numeri interi, unitPrice solo numeri con decimali. Dichiarare il tipo in anticipo non è burocrazia fine a sé stessa — permette a VBA di rilevare errori prima che diventino bug. Se provi a eseguire productName = 47, VBA ti blocca subito con un errore di incompatibilità di tipo, invece di memorizzare silenziosamente un valore errato che potrebbe causare confusione più avanti.
Tipi di dati comuni
Regola generale: usa Long invece di Integer per contatori e numeri di riga — non è più lento nelle versioni moderne di Excel e non va in overflow con dataset di grandi dimensioni. Troverai Dim i As Long ovunque in questo corso.
Option Explicit
Inserisci questa singola riga all'inizio di ogni modulo, prima di qualsiasi Sub. Cambia una cosa: VBA ora si rifiuterà di eseguire qualsiasi riga che utilizza una variabile non dichiarata prima con Dim:
Option Explicit
Sub Example()
Dim total As Double
total = 100 ' works — declared above
toatl = 200 ' typo — Option Explicit catches this at compile time
End Sub
Senza Option Explicit, quell'errore di battitura crea silenziosamente una nuova variabile chiamata total, e potresti passare venti minuti a chiederti perché total non cambia mai. Questa semplice abitudine previene più bug di qualsiasi altra cosa in questo capitolo.
Costanti
Le costanti sono valori nominati che non cambiano mai durante l'esecuzione del codice — ideali per elementi come aliquote fiscali o soglie:
Const REORDER_THRESHOLD As Integer = 20
Utilizzare REORDER_THRESHOLD invece di digitare 20 ovunque significa che, se la regola aziendale cambia, modifichi una sola riga invece di cercare in tutto il codice.
Attività
- In
Section_2_VBA_Fundamentals.xlsm, scrivere unaSubche dichiari una variabileStringper il nome del prodotto, unaDoubleper il prezzo e unIntegerper la quantità in magazzino. - Assegnare loro i valori per
USB-C Hubdigitando i valori letterali. - Utilizzare
MsgBoxper visualizzare tutti e tre in un unico messaggio, concatenati insieme. - Aggiungere
Const LOW_STOCK As Integer = 20sopra laSube utilizzarla in unMsgBoxconfrontandola con la variabile di stock.
- Sono necessarie tre righe
Dimcon tipi diversi — fare riferimento alla Figura 2.1 se si dimentica la sintassi:Dim name As Type. - La riga di USB-C Hub è Price 39.50, Stock 44. Assegnare questi valori direttamente:
price = 39.50. - La concatenazione utilizza
&, non+. Costruire la stringa a pezzi:"Name: " & productName & ", Price: " & price. - Le costanti vengono dichiarate fuori da qualsiasi
Sub, all'inizio del modulo, subito dopoOption Explicit. ConfrontarestockCountconLOW_STOCKusando semplicemente>o<all'interno di una stringaMsgBox— non è ancora necessario unIf, basta mostrare entrambi i valori per poterli confrontare visivamente.
Grazie per i tuoi commenti!
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione
Variabili e Tipi di Dati
Ogni procedura che scrivi ha bisogno di uno spazio dove conservare i valori durante l'esecuzione — il nome di un cliente, un totale parziale, un flag sì/no. Questa è una variabile: una scatola etichettata in memoria in cui puoi inserire un valore e recuperarlo in seguito. Ne crei una con Dim (abbreviazione di "dimension"), specificando subito a VBA che tipo di valore conterrà:
Dim productName As String
Dim currentStock As Integer
Dim unitPrice As Double
Ogni riga riserva uno slot etichettato: productName può contenere solo testo, currentStock solo numeri interi, unitPrice solo numeri con decimali. Dichiarare il tipo in anticipo non è burocrazia fine a sé stessa — permette a VBA di rilevare errori prima che diventino bug. Se provi a eseguire productName = 47, VBA ti blocca subito con un errore di incompatibilità di tipo, invece di memorizzare silenziosamente un valore errato che potrebbe causare confusione più avanti.
Tipi di dati comuni
Regola generale: usa Long invece di Integer per contatori e numeri di riga — non è più lento nelle versioni moderne di Excel e non va in overflow con dataset di grandi dimensioni. Troverai Dim i As Long ovunque in questo corso.
Option Explicit
Inserisci questa singola riga all'inizio di ogni modulo, prima di qualsiasi Sub. Cambia una cosa: VBA ora si rifiuterà di eseguire qualsiasi riga che utilizza una variabile non dichiarata prima con Dim:
Option Explicit
Sub Example()
Dim total As Double
total = 100 ' works — declared above
toatl = 200 ' typo — Option Explicit catches this at compile time
End Sub
Senza Option Explicit, quell'errore di battitura crea silenziosamente una nuova variabile chiamata total, e potresti passare venti minuti a chiederti perché total non cambia mai. Questa semplice abitudine previene più bug di qualsiasi altra cosa in questo capitolo.
Costanti
Le costanti sono valori nominati che non cambiano mai durante l'esecuzione del codice — ideali per elementi come aliquote fiscali o soglie:
Const REORDER_THRESHOLD As Integer = 20
Utilizzare REORDER_THRESHOLD invece di digitare 20 ovunque significa che, se la regola aziendale cambia, modifichi una sola riga invece di cercare in tutto il codice.
Attività
- In
Section_2_VBA_Fundamentals.xlsm, scrivere unaSubche dichiari una variabileStringper il nome del prodotto, unaDoubleper il prezzo e unIntegerper la quantità in magazzino. - Assegnare loro i valori per
USB-C Hubdigitando i valori letterali. - Utilizzare
MsgBoxper visualizzare tutti e tre in un unico messaggio, concatenati insieme. - Aggiungere
Const LOW_STOCK As Integer = 20sopra laSube utilizzarla in unMsgBoxconfrontandola con la variabile di stock.
- Sono necessarie tre righe
Dimcon tipi diversi — fare riferimento alla Figura 2.1 se si dimentica la sintassi:Dim name As Type. - La riga di USB-C Hub è Price 39.50, Stock 44. Assegnare questi valori direttamente:
price = 39.50. - La concatenazione utilizza
&, non+. Costruire la stringa a pezzi:"Name: " & productName & ", Price: " & price. - Le costanti vengono dichiarate fuori da qualsiasi
Sub, all'inizio del modulo, subito dopoOption Explicit. ConfrontarestockCountconLOW_STOCKusando semplicemente>o<all'interno di una stringaMsgBox— non è ancora necessario unIf, basta mostrare entrambi i valori per poterli confrontare visivamente.
Grazie per i tuoi commenti!