Un modulo di classe potrebbe funzionare da gestore di eventi per un oggetto.
Proviamo un po'...
Innanzitutto, gestiamo l'evento direttamente da un foglio di Excel Codice del Foglio1
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) MsgBox "Il foglio è stato cliccato col destro!" Cancel = True End SubE al click destro sul foglio si ottiene una MsgBox con il messaggio "Il foglio è stato cliccato col destro!".
Adesso facciamo con una classe: dopo aver cancellato il codice dalla finestra di codice del Foglio1, creo un modulo di classe e lo chiamo "gestore", con questo codice:
Dim WithEvents foglio As Worksheet Private Sub Class_Initialize() Set foglio = Sheets(1) End Sub Private Sub foglio_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) MsgBox "Il foglio è stato cliccato col destro!" Cancel = True End SubE istanzio la classe da Modulo 1 con questo codice:
Dim mioGestore As gestore Sub main() Set mioGestore = New gestore End SubVado sul foglio, avvio main dalla finestra delle Macro, e quando vado a cliccare col destro sul foglio 1 ottengo lo stesso risultato, ossia una MsgBox con il messaggio "Il foglio è stato cliccato col destro!"
Nessun commento:
Posta un commento