Il piccolo file allegato vuole mostrare l’uso un po’ più sofisticato che si può realizzare in Excel all’interno di Vba. Infatti abbiamo mostrato come si realizza una piccola classe: la classe Quadrato. Un ottimo lavoro nell’ambito mi sembra quello di Emanuele Mattei nel suo blog:http://blog.shareoffice.it/emanuele/articles/9973.aspx ma è indicato soprattutto per Vb.Net e C#. Invece la programmazione ad oggetti può aver luogo anche in Vba e in particolare in Excel. Il file mostra come si può calcolare l’area di un quadrato in vari modi: con le formule, con una piccola macro, con una classe. L’ultimo modo è certamente il più complicato, ma come esempio di costruzione di una classe deve essere visto al di là dei risultati immediati. In realtà per apprezzare i vantaggi nell’utilizzo delle classi bisogna scrivere codice. La nostra classe rappresenta sostanzialmente un quadrato geometrico: specificando il lato che viene memorizzato e che può essere letto e variato, rimangono fissate le proprietà conseguenti: diagonale, area, perimetro. Inoltre, come detto, il nostro quadrato possiede due “metodi” non euclidei: può essere ingrandito o rimpicciolito di una percentuale fissata. Una volta compiuto il lavoro di implementazione della classe vediamone l’uso: per prima cosa si deve creare un’istanza nel nostro programma con l’istruzione: Dim Q As New Quadrato. In questo modo si fa sapere ad Excel che Q è un “oggetto” della classe quadrato. Questa istruzione deve essere fatta per prima. Quindi abbiamo realizzato due piccole routines: la prima calcola l’area esattamente come si potrebbe fare in altro modo, la seconda utilizza il metodo IngrandisciP per incrementare il lato del quadrato. Notate come non compaiano formule matematiche nel codice del foglio1. Ma i fatti più interessanti accadono nell’Ide. Vediamo nell’immagine seguente come si comporta Vba quando scriviamo Q. dopo aver dichiarato che fa parte della classe Quadrato.
Vba correttamente ci indica quali metodi e proprietà possono essere applicate a Q.