Comprensione di variabili e costanti nelle macro di Excel

In questo articolo imparerai quali sono le costanti e le variabili nelle macro, dove possono essere utilizzate e qual è la differenza principale tra i diversi tipi di dati. Verrà anche rivelato perché sono necessarie le costanti, se puoi semplicemente scrivere una variabile e non cambiarla mai.

Come altri linguaggi di programmazione, i dati possono essere archiviati in variabili o costanti (entrambi spesso indicati anche come contenitori di dati). Questa è la principale differenza tra questi concetti. Il primo può cambiare a seconda di ciò che accade nel programma. A loro volta, le costanti vengono impostate una volta e non cambiano il loro valore.

Le costanti possono essere utili se è necessario utilizzare più volte lo stesso valore grande. Invece di copiare il numero, puoi semplicemente scrivere il nome della costante. Ad esempio, puoi utilizzare la costante "Pi" per memorizzare Pi, che è un valore costante. È molto grande e ogni volta è abbastanza difficile scriverlo o cercarlo e copiarlo. E quindi basta scrivere due caratteri e l'ambiente utilizza automaticamente il numero desiderato.

L'utente di Excel deve dichiarare le variabili se ha bisogno di modificare il valore in esse memorizzato di volta in volta. Ad esempio, puoi impostare una variabile denominata sVAT_Rate, che memorizzerà l'aliquota IVA corrente per il prodotto. Se cambia, puoi correggerlo rapidamente. Ciò è particolarmente utile per coloro che fanno affari negli Stati Uniti, dove alcuni beni potrebbero non essere soggetti all'IVA (e questa tassa varia anche da stato a stato).

Tipi di dati

Ciascun contenitore di dati può essere di diversi tipi. Di seguito è riportata una tabella che descrive i tipi standard di informazioni elaborate. Ce ne sono molti e inizialmente può sembrare a un principiante che si ripetano. Ma questa è una sensazione illusoria. Continua a leggere per scoprire perché è così importante specificare il tipo di dati corretto.

Non è consigliabile utilizzare un tipo di dati che occupa più spazio in memoria per numeri piccoli. Ad esempio, per il numero 1 è sufficiente utilizzare il tipo Byte. Ciò avrà un effetto positivo sulle prestazioni del modulo eseguibile, specialmente su computer deboli. Ma è importante non andare troppo lontano qui. Se utilizzi un tipo di dati troppo compatto, un valore sovradimensionato potrebbe non rientrare in esso.

Dichiarazione di costanti e variabili

L'utilizzo di un contenitore di dati senza prima dichiararlo è fortemente sconsigliato. Quindi possono sorgere una serie di problemi, per evitare i quali è necessario scrivere alcune piccole righe di codice con enumerazione di variabili o costanti.

Per dichiarare una variabile, viene utilizzata l'istruzione Dim. Ad esempio, in questo modo:

Dim nome_variabile come intero

Variable_Name è il nome della variabile. Successivamente, viene scritto l'operatore As, che indica il tipo di dati. Al posto delle stringhe “Variable_Name” e “Integer”, è possibile inserire il proprio nome e tipo di dati.

Le costanti possono anche essere dichiarate, ma è necessario prima specificarne il valore. Una delle opzioni è:

Conteggio iMax cost = 5000

In tutta onestà, in alcuni casi si può fare a meno di dichiarare una variabile, ma in questo caso verrà automaticamente assegnata la tipologia Variant. Tuttavia, questo non è raccomandato per i seguenti motivi:

  1. La variante viene elaborata molto più lentamente e, se sono presenti molte di queste variabili, l'elaborazione delle informazioni può essere notevolmente rallentata su computer deboli. Sembrerebbe che quei secondi decideranno? Ma se devi scrivere un gran numero di righe di codice, e poi eseguirlo anche su computer deboli (che sono ancora venduti, dato che le moderne suite per ufficio richiedono molta RAM), puoi interrompere completamente il lavoro. Ci sono casi in cui la scrittura mal concepita di macro ha portato al congelamento di smartbook che hanno una piccola quantità di RAM e non sono progettati per svolgere compiti complessi. 
  2. Sono consentiti errori di stampa nei nomi, che possono essere evitati utilizzando l'istruzione Option Explicit, che consente di trovare una variabile non dichiarata, se ne viene trovata una. Questo è un modo semplice per rilevare gli errori, poiché il minimo errore di battitura impedisce all'interprete di identificare la variabile. E se attivi la modalità di dichiarazione delle variabili, l'interprete semplicemente non ti consentirà di eseguire la macro se vengono trovati contenitori di dati che non sono stati dichiarati proprio all'inizio del modulo.
  3. Evita errori causati da valori variabili che non corrispondono al tipo di dati. Normalmente, l'assegnazione di un valore di testo a una variabile intera genererà un errore. Sì, da un lato viene assegnato un tipo generico senza una dichiarazione, ma se vengono dichiarati in anticipo si possono evitare errori casuali.

Pertanto, nonostante tutto, si consiglia vivamente di dichiarare tutte le variabili nelle macro di Excel.

C'è un'altra cosa da tenere a mente quando si dichiarano le variabili. È possibile non assegnare alcun valore a una variabile quando la si dichiara, ma in questo caso acquisisce un valore di default. Per esempio:

  1. Le righe vengono rese vuote.
  2. I numeri assumono il valore 0.
  3. Le variabili di tipo Boolean sono inizialmente considerate false.
  4. La data predefinita è il 30 dicembre 1899.

Ad esempio, non è necessario assegnare il valore 0 a una variabile intera se non è stato precedentemente specificato alcun valore. Lei contiene già questo numero.

Opzione Dichiarazione esplicita

Questa istruzione consente di dichiarare tutte le variabili utilizzate nel codice VBA e determinare la presenza di eventuali contenitori non dichiarati prima dell'esecuzione del codice. Per utilizzare questa funzione, scrivi semplicemente una riga di codice Option Explicit nella parte superiore del codice della macro.

Se è necessario includere ogni volta questa istruzione nel codice, è possibile farlo utilizzando un'impostazione speciale nell'editor VBA. Per abilitare questa opzione, devi:

  1. Vai all'ambiente di sviluppo lungo il percorso – Strumenti > Opzioni.
  2. Nella finestra che si apre dopo questo, apri la scheda Editor.
  3. Infine, seleziona la casella accanto alla voce Richiedi dichiarazione di variabile.

Al termine di questi passaggi, fare clic sul pulsante "OK". 

Questo è tutto, ora quando si scrive ogni nuova macro, questa riga verrà inserita automaticamente nella parte superiore del codice.

Ambito di costanti e variabili

Ogni variabile o costante ha solo un ambito limitato. Dipende da dove lo dichiari.

Supponiamo di avere una funzione Costo totale(), e utilizza la variabile sVAT_Tariffa. A seconda della posizione nel modulo, avrà un ambito diverso:

Opzione esplicita

Dim sVAT_Rate come singolo

Funzione Costo_totale() come doppio

.

.

.

End Function

Se una variabile viene dichiarata all'inizio di un modulo stesso, si propaga in tutto il modulo. Cioè, può essere letto da ogni procedura.

Inoltre, se una delle procedure ha modificato il valore della variabile, anche la successiva leggerà questo valore corretto. Ma in altri moduli questa variabile non verrà ancora letta.

Opzione esplicita

Funzione Costo_totale() come doppio

Dim sVAT_Rate come singolo

   .

   .

   .

End Function

In questo caso, la variabile viene dichiarata all'interno della procedura e l'interprete genererà un errore se viene utilizzata in un'altra procedura.

Se si desidera che la variabile venga letta da altri moduli, è necessario utilizzare la parola chiave Public invece della parola chiave Dim. Allo stesso modo, puoi limitare l'ambito di una variabile al solo modulo corrente utilizzando l'istruzione Public, che viene scritta al posto della parola Dim.

È possibile impostare l'ambito delle costanti in modo simile, ma la parola chiave qui è scritta insieme all'operatore Const.

Ecco una tabella con un buon esempio di come funziona con costanti e variabili.

Opzione esplicita

sVAT_Rate pubblico come singolo

Costo pubblico iMax_Count = 5000

In questo esempio, puoi vedere come viene utilizzata la parola chiave Public per dichiarare una variabile e cosa devi scrivere nell'editor di Visual Basic per dichiarare una costante pubblica. L'ambito di questi contenitori di valori si applica a tutti i moduli.
Opzione esplicita

Privato sVAT_Rate come singolo

Const iMax_Count privato = 5000

Qui, variabili e costanti vengono dichiarate utilizzando la parola chiave Private. Ciò significa che possono essere visualizzati solo all'interno del modulo corrente e le procedure in altri moduli non possono utilizzarli.

Perché sono necessarie costanti e variabili

L'uso di costanti e variabili consente di aumentare il grado di comprensibilità del codice. E se i principianti in generale non hanno domande sul perché le variabili siano necessarie, allora ci sono molte ambiguità riguardo alla necessità di costanti. E questa domanda sembra, a prima vista, abbastanza logica. Dopotutto, puoi dichiarare una variabile una volta e non cambiarla mai più.

La risposta risulta essere da qualche parte sullo stesso piano per quanto riguarda l'uso di tipi di dati che occupano un ampio spazio di memoria. Se abbiamo a che fare con un numero enorme di variabili, possiamo modificare accidentalmente un contenitore esistente. Se l'utente prescrive che un determinato valore non cambierà mai, l'ambiente lo controllerà automaticamente.

Ciò è particolarmente importante quando la macro è scritta da più programmatori. Si può sapere che alcune variabili non dovrebbero cambiare. E l'altro no. Se specifichi l'operatore Const, un altro sviluppatore saprà che questo valore non cambia.

Oppure, se esiste una costante con un nome e la variabile ha un nome diverso, ma simile. Lo sviluppatore può semplicemente confonderli. Ad esempio, una variabile che non deve essere modificata è denominata Variabile11 e un'altra che può essere modificata è denominata Variabile1. Una persona può automaticamente, durante la scrittura del codice, saltare accidentalmente un'unità aggiuntiva e non notarla. Di conseguenza, verrà modificato il contenitore dei valori, che non dovrebbe essere toccato.

Oppure lo stesso sviluppatore potrebbe dimenticare quali variabili può toccare e quali no. Ciò accade spesso quando il codice viene scritto per diverse settimane e le sue dimensioni diventano grandi. Durante questo periodo, è molto facile dimenticare anche il significato di questa o quella variabile.

Sì, puoi fare con i commenti in questa situazione, ma non è più semplice specificare la parola Const?

Conclusioni

Le variabili sono una componente essenziale della programmazione delle macro, che consentono di eseguire operazioni complesse, dai calcoli all'informazione dell'utente su determinati eventi o alla specifica di valori specifici nelle celle di un foglio di calcolo.

Le costanti dovrebbero essere utilizzate se lo sviluppatore sa per certo che il contenuto di questi contenitori non cambierà in futuro. Si consiglia invece di non utilizzare variabili, in quanto è possibile commettere un errore accidentale.

Lascia un Commento