lettura normale

Creare un nuovo tipo di dati nella macro Excel

In questa lezione ti spiego come definire un nuovo tipo di dati sulla macro Excel.

A cosa serve? Oltre ai tipi di dati predefiniti, Excel ti dà la possibilità di creare dei tipi di dati personalizzati (classi) che potrai usare per definire le variabili della tua macro.

Per creare un nuovo tipo di dati devi usare l'istruzione Type.

Type nome_tipo_dati
...
End Type

Ti faccio un esempio pratico.

Crea un nuovo tipo di dati chiamato "Persona"

Type Persona
Cognome As String
Nome As String
DataNascita As Date
End Type

Il nuovo tipo "Persona" è composto a sua volta da tre variabili, come "Cognome", "Nome" e "DataNascita".

La macro utilizza la classe "Persona" per istanziare la variabile "Studente"

Dim Studente As Persona
Studente.Cognome="Rossi"
Studente.Nome="Paolo"
Studente.DataNascita=#22/11/1997#

Puoi usare la stessa classe (tipo di dati) anche per definire la variabile "Professore"

Dim Professore As Persona
Professore.Cognome="Verdi"
Professore.Nome="Giuseppe"
Professore.DataNascita=#15/12/1969#

Entrambe le variabili "Studente" e "Professore" appartengono allo stesso tipo "Persona".

Detto in altre parole, sono due oggetti differenti che appartengono alla stessa classe.

Ricorda di inserire la definizione dei tipi di dati all'inizio del modulo e la dichiarazione delle variabili dentro le macro.

 

  1. Type Persona
  2. Cognome As String
  3. Nome As String
  4. DataNascita As Date
  5. End Type
  6.  
  7. Sub Macro()
  8. Dim Studente As Persona
  9. Studente.Cognome="Rossi"
  10. Studente.Nome="Paolo"
  11. Studente.DataNascita=#22/11/1997#
  12. Dim Professore As Persona
  13. Professore.Cognome="Verdi"
  14. Professore.Nome="Giuseppe"
  15. Professore.DataNascita=#15/12/1969#
  16. End Sub

Volendo puoi anche creare un nuovo tipo usando altri tipi personalizzati.

In questo caso il nuovo tipo eredita le proprietà dei tipi che lo compongono e ne aggiunge altre.

Ad esempio, crea un nuovo tipo dati chiamato "Tutor"

Type Tutor
Studente As Persona
Professore As Persona
End Type

Poi definisci una variabile di tipo "Tutor"

Dim Formazione As Tutor
Formazione.Studente.Cognome="Rossi"
Formazione.Studente.Nome="Paolo"
Formazione.Studente.DataNascita=#22/11/1997#
Formazione.Professore.Cognome="Verdi"
Formazione.Professore.Nome="Giuseppe"
Formazione.Professore.DataNascita=#15/12/1969#

In alternativa puoi anche usare l'istruzione With ed evitare di ripetere il nome della variabile

Dim Formazione As Tutor
With Formazione
.Studente.Cognome="Rossi"
.Studente.Nome="Paolo"
.Studente.DataNascita=#22/11/1997#
.Professore.Cognome="Verdi"
.Professore.Nome="Giuseppe"
.Professore.DataNascita=#15/12/1969#
End With

Puoi anche annidare una With all'interno di un'altra With

Dim Formazione As Tutor
With Formazione
With .Studente
.Cognome="Rossi"
.Nome="Paolo"
.DataNascita=#22/11/1997#
End With
With .Professore
.Cognome="Verdi"
.Nome="Giuseppe"
.DataNascita=#15/12/1969#
End With
End With

In questo modo il codice della macro è più compatto, chiaro e facile da leggere.

 




Se qualcosa non ti è chiaro, scrivi la tua domanda nei commenti.




FacebookTwitterLinkedinLinkedin