Scusa ma perdona l'ignoranza
Io non capisco perchè se l'elemento "obj.Valore" punta già all'area di memoria in cui voglio memorizzare la proprietà, io devo anche usare "mValore" mer immagazzinare il dato...i 2 elementi non stanno puntando allo stesso dato?? E' come se salvassi il dato in "mValore" e poi attraverso "obj.Valore" andassi a pescare quanto sta scritto in "mValore"...mi sembra come se "mValore" fosse solo una variabile d'appoggio. Possibile che per ciascuna variabile che definisco debba anche definire un'ulteriore variabile per memorizzare i dati, mi sembra assurdo!! Inoltre quando poi crei codice e scrivi "obj.", compare l'elenco di scelta rapida (oppure anche dal visualizzatore oggetti si può vedere) nel quale vi è un numero di termini doppio rispetto alle proprità definite (compaiono "mValore" e "Valore"). Perchè negli oggetti già fatti di Excel compare solo ad esempio il termine "Valore" e non anche la variabile in cui si memorizzano i valori di proprietà
Dato che lavoro con VBA io ho sempre scritto le Sub in un Modulo lanciandole col tasto del triangolino, non sento l'esigenza di usare un Form...
Ho scritto in [B]Modulo:
codice:
Option Explicit
Public i As Integer
Public Righello As MioOggetto 'QUESTO ME LO ACCETTA
'Public withevents Righello As MioOggetto 'QUESTO QUELLO CHEDOVREBBE ACCETTARMI
Public Sub DimensioneRighello()
Set Righello = New MioOggetto
Righello.Dimensione = 20
Debug.Print Righello.Dimensione
For i = 1 To 5
Righello.Allunga (10)
Debug.Print Righello.Dimensione
Next i
End Sub
Public Sub TroppoLungo(sa As String)
MsgBox sa
End Sub
Ho scritto in Modulo di Classe:
codice:
Option Explicit
Public sa As String
Public DimensioneLunghezza As Integer
Public Event TroppoLungo(sa As String)
Public Property Get Dimensione() As Integer
Dimensione = DimensioneLunghezza
End Property
Public Property Let Dimensione(L As Integer)
DimensioneLunghezza = L
If DimensioneLunghezza >= 50 Then
RaiseEvent TroppoLungo("TROPPO LUNGO")
End If
End Property
Public Function Allunga(L)
Dimensione = Dimensione + L
End Function
Se riuscissi a far digerire la dichiarazione con WithEvents secondo me dovrebbe funzionare.
Perdonami, ma sto guardando su di una guida di VBA che però sull'argomento non mi sembra per nulla completa
VVoVe:
Come posso dire ad Alka che dovrebbe modificarmi il linguaggio nel titolo, mettendo VBA??