Vous pouvez faire cela et utiliser n'importe quel mot-clé/mot réservé dans votre VBA. Mais cela rendra votre code beaucoup plus désordonné et très difficile à lire/déboguer/maintenir.
Si vous avez une propriété bool nommée If
dans votre classe, vous obtiendrez quelque chose comme ceci If .If Then
Eh bien, bonne chance pour lire ça. De même, la maintenance du code comme Find/Replace/rename etc. nécessitera une attention particulière et plus de travail.
Quoi qu'il en soit, si vous êtes prêt à endurer toute cette souffrance, voici comment vous devez procéder. Après les mots-clés/mots réservés, ajoutez un espace vide invisible en utilisant ALT+0160. et c'est tout. VBA considérera qu'il s'agit d'un nom parfaitement légal, par exemple If
.
De plus, vous devrez soit utiliser intellisense pour utiliser ces noms de propriétés, soit taper manuellement l'altcode partout. C'est de la saisie supplémentaire.
clsTest
Option Explicit
Private m_sSelect As String
Private m_bIF As Boolean
Public Property Get Select () As String '~~> Select () is actually typed as SelectALT+0160()
Select = m_sSelect
End Property
Public Property Let Select (ByVal sNewValue As String)
m_sSelect = sNewValue
End Property
Public Property Get If () As Boolean
If = m_bIF
End Property
Public Property Let If (ByVal bNewValue As Boolean)
m_bIF = bNewValue
End Property
Module de test
Option Explicit
Sub demo()
Dim objTestClass As clsTest
Set objTestClass = New clsTest
With objTestClass
.Select = "It works. But it will, for sure, create readibility/maintenance issues."
.If = False
End With
MsgBox objTestClass.Select
'/ See how hard it will to read/debug this sort of code
With objTestClass
If .If Then '~~> This line here :)
MsgBox "If prop value is TRUE"
Else
MsgBox "If prop value is FALSE"
End If
End With
End Sub
ALT+0160 <> Espace