Bonjour,
Pour faire en sorte que l'objet de la classe `MaClasse` retourne une valeur par défaut lorsqu'il est utilisé dans une expression comme `MsgBox obj`, tu dois définir la propriété par défaut de la classe avec l'attribut `Default`. Voici comment procéder :
1. **Créer la classe VBA avec Notepad++ :**
Ouvres Notepad++ et ajoutees un nouveau fichier. Enregistres-le avec l'extension `.cls` (par exemple, `MaClasse.cls`).
2. **Définir la classe et sa propriété par défaut :**
Écrivis le code suivant dans Notepad++ :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
VERSION 1.0 CLASS
BEGIN
MultiUse = -1 'True
END
Attribute VB_Name = "MaClasse"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = True
Option Explicit
Private pValeurParDefaut As String
' Propriété par défaut
Public Property Get DefaultProperty() As String
Attribute DefaultProperty.VB_UserMemId = 0
DefaultProperty = pValeurParDefaut
End Property
' Initialiser avec une valeur par défaut
Private Sub Class_Initialize()
pValeurParDefaut = "Valeur Initiale"
End Sub |
Le point clé ici est `Attribute DefaultProperty.VB_UserMemId = 0`, qui indique que cette propriété doit être utilisée par défaut lorsque l'objet est utilisé dans une expression.
3. **Sauvegardes le fichier :**
Sauvegardesle fichier dans Notepad++.
4. **Importer la classe dans VBA :**
- Ouvres l'éditeur VBA dans Excel (ou une autre application Office).
- Fais un clic droit sur ton projet dans l'Explorateur de projets et sélectionnes `Importer un fichier`.
- Sélectionnes ton fichier `.cls` et cliques sur `Ouvrir`.
5. **Utiliser la classe dans ton code VBA :**
Tu peux maintenant utiliser ta classe avec la propriété par défaut :
1 2 3 4 5 6
|
Sub TesterClasse()
Dim obj As MaClasse
Set obj = New MaClasse
MsgBox obj ' Affiche "Valeur Initiale"
End Sub |
En suivant ces étapes, la propriété par défaut sera utilisée lorsque tu appeles `MsgBox obj`, affichant ainsi "Valeur Initiale" comme prévu.
Notes que définir une valeur par défaut d'une classe ne peut ce faire qu'avec notpad, il convient donc d'étiter le fichier .csl après exportations du module de classe.
Partager