Module de classe Excel VBA
La classe VBA nous permet de créer notre propre fonction Object dans laquelle nous pouvons ajouter tout type de fonctionnalités, détails de la ligne de commande, type de fonction. Lorsque nous créons des classes en VBA, elles agissent comme une fonction d'objet totalement indépendante mais elles sont toutes connectées ensemble.
Cela nous aide à créer des applications comme celles qui existent déjà dans VBA et Excel. Par exemple, la roue du cycle de pédalage tourne. Les pédales et les roues sont toutes deux des parties de Cycle, mais les deux fonctionnent indépendamment pour donner la sortie sous forme de cycle en mouvement.

Comment créer une classe et des objets personnalisés dans VBA?
Prenons un exemple de téléphones mobiles de 3 entreprises différentes, qui sont Apple, Samsung et Nokia, compte tenu des téléphones mobiles populaires et nouvellement lancés de ces entreprises, à savoir l'iPhone X, le Samsung S8 et le Nokia 7+.
Nous comparerons certaines des caractéristiques importantes de ces téléphones mobiles, telles que la marque, le modèle, la taille de l'écran, le type d'appareil photo et le type de chargeur. Ce sont des caractéristiques fondamentalement importantes sur cette base. Nous comparons principalement n'importe quel téléphone mobile. Ci-dessous, nous avons mappé les paramètres décrits ci-dessus dans un graphique.

Dans la fenêtre VBA du menu Insertion , sélectionnez le module de classe, comme indiqué ci-dessous.

Nous obtiendrons la fenêtre du module de classe commençant par Option Explicit, comme indiqué ci-dessous.

L'option Explicit garantit que les variables doivent être déclarées avant d'être utilisées. Si nous ne déclarons aucune variable et ne l'utilisons pas, le système lancera une erreur. Maintenant en classe, définissez tous les paramètres de mesure discutés des téléphones mobiles avec le public . Cela rendra ces paramètres définis ouverts à l'utilisation à tout moment, n'importe où, sans aucune limitation.
Code:
Option Explicit 'Liste des propriétés Public Brand As String Public Model As String Public ScreenSize As String Public CameraType As String Public ChargerType As String

Nous allons maintenant ajouter un processus différent de fonctionnement, de fonctionnalités et de fonctions d'un téléphone mobile, comme le démarrage d'un téléphone, l'extinction du téléphone, la lecture de musique, le chargement de la batterie, etc. avec une sous-catégorie pour chaque fonction, comme indiqué ci-dessous. Et ajoutez une boîte de message dans chaque boucle de sous-catégorie afin que nous puissions voir quelles méthodes sont actuellement en cours d'exécution.
Code:
'Possible Techniques Sub MobileStarts () MsgBox "Mobile is Turning On" End Sub
Sub MobileOff () MsgBox "Le mobile s'éteint" End Sub
Sub PlayMusic () MsgBox "Le système audio fonctionne actuellement" End Sub
Sub BatteryCharge () MsgBox "Le chargeur est actuellement branché" End Sub

Ceci termine la création de Class. Avant d'aller plus loin, il est conseillé de changer le nom du module de classe. Choisissez n'importe quel nom selon vos besoins car nous le changeons en Mobile .

Nous allons maintenant écrire un code dans un module où nous verrons et comparerons les caractéristiques et les fonctions de chaque marque de téléphone mobile. Pour cela, nous devons ajouter un module en y allant sous le menu Insertion comme indiqué dans le menu.

Nous allons ouvrir un nouveau module avec l'option Explicit activée dans ce module pendant que nous travaillons et créons une classe. Maintenant, commencez à écrire la sous-catégorie au nom des fonctions exécutées comme indiqué ci-dessous.

Nous pouvons changer le nom du module comme nous l'avons fait pour la classe. Cela nous aide à conserver l'identité co-associée du code VBA créé. Cela peut être fait à partir des fenêtres de propriétés, comme indiqué ci-dessous.

Nous avons déjà défini diverses caractéristiques, fonctions et méthodes de tous les téléphones mobiles de la marque. Définissons maintenant 3 variables dans n'importe quel nom (de préférence dans le nom de la marque de téléphone mobile) et attribuons-les à Mobile. Commençons par l'iPhone, comme indiqué ci-dessous.

De même, faites de même pour le reste de la marque de téléphone mobile, comme indiqué ci-dessous.

Par cela, nous attribuons la classe créée à chaque variable dimensionnelle de la marque Mobile. Maintenant, pour chaque marque, effectuez le même processus d'attribution de la classe .
Nous devons maintenant attribuer toutes les fonctionnalités du téléphone mobile et sa valeur. Pour cela, utilisez la fonction Set et attribuez-le à un nouveau mobile, comme indiqué ci-dessous.

Maintenant, ouvrez la boucle With-End pour iPhone. C'est ici que nous définirons chaque attribut du mobile.

Comme nous pouvons le voir, nous avons attribué toutes les fonctionnalités définies de la marque iPhone de Class avec des valeurs spécifiques comme String.
Faites la même chose pour les marques Samsung et Nokia.

Nous allons maintenant utiliser DebugPrint pour imprimer les informations sur la fenêtre immédiate. C'est utile lorsque nous voulons voir une certaine variable dans une ligne de code. Nous sélectionnerons différentes fonctionnalités pour chaque marque mobile, comme indiqué ci-dessous.

Attribuez maintenant les opérations fonctionnelles MobileStarts et MobileOff , que nous avons définies dans Class à chacune des marques mobiles dans le même module avec la boîte de message. Vous pouvez ignorer la boîte de message ici.

Ceci termine l'attribution de la classe au module. Maintenant, compilez le code et exécutez à l'aide de la touche F5. Nous verrons le message de chaque marque mobile, comme indiqué ci-dessous.

Now, if you want to know what variables and functions have what kind of values in it, for that open the Local window from the view tab, which will help us getting the details when we compile the code as shown below.

The below code is for your Reference.
Code:
Sub VBA_Class() Dim iPhone As Mobile Dim Samsung As Mobile Dim Nokia As Mobile Set iPhone = New Mobile With iPhone .Brand = "iPhone" .Model = "iPhone X" .ScreenSize = "6.5 Inches" .CameraType = "12 MegaPixel" .ChargerType = "Regular" End With Set Samsung = New Mobile With Samsung .Brand = "Samsung" .Model = "Samsung S8" .ScreenSize = "5.8 Inches" .CameraType = "12 MegaPixel" .ChargerType = "Power" End With Set Nokia = New Mobile With Nokia .Brand = "Nokia" .Model = "Nokia 7+" .ScreenSize = "6 Inches" .CameraType = "12 MegaPixel" .ChargerType = "Power" End With Debug.Print "Phone Screen Size is: " & iPhone.ScreenSize Debug.Print "Camera of Samsung is: " & Samsung.CameraType Debug.Print "Charger Type is: " & Nokia.ChargerType iPhone.MobileStarts iPhone.MobileOff MsgBox iPhone.Model Samsung.MobileStarts Samsung.MobileOff MsgBox Samsung.Model Nokia.MobileStarts Nokia.MobileOff MsgBox Nokia.Model End Sub
Pros
- We can build our own application with a lot of features.
- Once Class is created, we can update any feature, anytime whenever we require.
- If we update the code, then also it won’t cause any problem in other parts of the Class.
- We can test the individual part of the application as per our needs.
Cons
- Initially, it takes a lot of time to create a class in VBA.
- People who are new to VBA will find the class very difficult to apply.
Things to Remember
- As the code can be huge and big, so it’s better to compile the code step-by-step. By doing this, we would avoid the N number of errors, which will be difficult for us to debug and resolve.
- We can ignore the use of Message Box if you are taking and testing the above-written code.
- Pour les tests, vous pouvez utiliser des techniques ou des fonctions moins importantes pour créer une classe. Cela peut être modifié plus tard lorsque nous voulons ajouter plus de fonctions et de techniques de produit.
- Considérez toujours des fonctionnalités similaires ou identiques lorsque nous terminons le cours et que nous l'attribuons à un module. Cela nous aidera à comparer les caractéristiques de différents produits.