Visual Basic for Applications:
Calcolare una data nel futuro o nel passato
Come fare:
In Visual Basic for Applications (VBA), la funzione primaria utilizzata per calcolare date future o passate è DateAdd()
. Questa funzione aggiunge un intervallo di tempo specificato a una data, restituendo una nuova data.
Ecco un esempio base per aggiungere 10 giorni alla data corrente:
Dim futureDate As Date
futureDate = DateAdd("d", 10, Date) ' Aggiunge 10 giorni alla data corrente
Debug.Print futureDate ' Stampa qualcosa tipo: 20/04/2023
Analogamente, per trovare una data 10 giorni nel passato:
Dim pastDate As Date
pastDate = DateAdd("d", -10, Date) ' Sottrae 10 giorni dalla data corrente
Debug.Print pastDate ' Stampa: 31/03/2023, assumendo che oggi sia il 10/04/2023
Questi esempi sono piuttosto semplici. Puoi sostituire "d"
con altri codici di intervallo, come "m"
per mesi e "yyyy"
per anni, per calcolare diversi tipi di calcoli di date. Ecco come potresti calcolare una data un anno nel futuro:
Dim nextYear As Date
nextYear = DateAdd("yyyy", 1, Date) ' Aggiunge 1 anno alla data corrente
Debug.Print nextYear ' Stampa: 10/04/2024 se oggi è il 10/04/2023
Approfondimento
La funzione DateAdd
è stata una parte fondamentale di VBA fin dalla sua nascita, derivando dal suo predecessore BASIC. Mentre offre semplicità per aggiungere o sottrarre intervalli di tempo dalle date, è fondamentale notare che VBA, inclusa la gestione delle sue funzioni di data, potrebbe non sempre eguagliare la comodità o l’efficienza trovata in linguaggi di programmazione più recenti.
Ad esempio, linguaggi moderni come Python con il modulo datetime
o JavaScript con librerie come moment.js
e date-fns
forniscono modi più intuitivi e potenti per la manipolazione delle date. Queste opzioni offrono un migliore supporto per la localizzazione, i fusi orari e gli anni bisestili, che possono renderli più adatti per applicazioni che richiedono calcoli di date precisi su scala globale.
Tuttavia, per macro Excel e applicazioni che richiedono l’integrazione nell’ecosistema di Microsoft Office, VBA rimane una scelta pratica. La semplicità nell’accedere direttamente e manipolare i dati di Excel rappresenta un vantaggio significativo. Inoltre, per la maggior parte dei calcoli di date di base come pianificazione e promemoria, DateAdd()
in VBA fornisce una soluzione adeguata e diretta. La sua sintassi è facile da comprendere per i neofiti, mentre la sua integrazione nelle più ampie applicazioni della suite Office ne assicura la rilevanza in casi d’uso specifici.
In conclusione, mentre i linguaggi di programmazione alternativi possono offrire approcci più moderni al calcolo delle date, DateAdd()
in VBA funge da testimonianza della persistenza del linguaggio nei domini dove è più necessario.