image

Qu’est-ce qu’une classe dans VBA?

Une classe est un modèle pour un objet à créer. Une classe elle-même ne fait rien mais en utilisant des classes, vous pouvez créer plusieurs objets identiques qui peuvent effectuer des opérations ou peuvent être utilisés comme ressource de données.

Dans la vraie vie, le modèle (design et fonctionnalités) d’une voiture est une classe et la voiture elle-même est un objet de cette classe. Dans la classe, nous définissons ce que la voiture a en elle et ce qu’elle peut faire. Par exemple, une voiture a 4 roues, 5 vitesses, volant, etc. Ce sont des attributs / propriétés.

Nous définissons également ce qu’une voiture peut faire, comme avancer, reculer, tourner, etc. Ce sont des fonctions de la classe de voiture. Un objet de voiture créé à l’aide de la classe de voiture aura toutes ces propriétés. Si vous définissez une voiture à 5 roues, une voiture créée en utilisant cette classe aura 5 roues. Tu obtiens le point.

Assez de théorie, voyons maintenant comment vous pouvez utiliser un module de classe dans VBA.

Utilisation du module de classe Excel VBA

Lorsque vous travaillez dans VBA, vous devez avoir utilisé Range (« A1 »). Select. La plage est une classe prédéfinie dans VBA. La sélection est l’une des fonctions de la classe Range qui sélectionne la plage spécifiée. De même, Debug est une classe dans VBA et print et assert sont ses méthodes. Les feuilles de calcul, les classeurs, les plages, etc. sont tous des classes VBA que nous utilisons dans nos sous-marins.

image

Créez votre propre classe

Tout d’abord, nous devons ajouter un module de classe dans VBA Appuyez sur la combinaison de touches ALT + F11 pour ouvrir l’éditeur Excel VBA.

  • Faites un clic droit sur l’explorateur de projet. Déplacez le curseur sur Insertion → Module de classe. Clique dessus. La même chose peut être faite à partir du menu Insertion.

image

  • La classe sera ajoutée au dossier « Module de classe ». Le nom par défaut est comme class1, class2, etc. Vous pouvez modifier le nom de la classe dans la fenêtre des propriétés. Appelons notre classe « Bienvenue ».

image

Maintenant, créons ajouter quelques attributs à notre classe. Puisque je souhaite que ces attributs soient accessibles au public, j’utilise l’opérateur d’accessibilité * public.

Public name As String

Public var1 As Integer

Public var2 As Integer
  • Ajoutons maintenant une fonction à cette classe. Je veux une fonction qui dit Salut! à l’utilisateur. Pour ce faire, ajoutez un sous et nommez-le sayHiTo.

Sub sayHiTo(user As String)

name = user

MsgBox ("Hi! " & name)

End Sub
  • Utilisons maintenant la classe dans un module. Insérez un nouveau module si vous n’en avez pas. Écrivez un sous. J’ai nommé mon sous-test.

Sub test()

Dim wc As New Welcome 'Declared and initialized Welcome object

wc.sayHiTo ("Jack") 'used sayHiTo method of Welcome Object.

End Sub
  • Exécutez ce sous-test en utilisant la touche F5. Il affichera « Salut! Jack » sur le classeur Excel.

image

Comment ça marche?

Dans le sous Test, nous avons créé un objet « wc » de Welcomeclass. Un objet est créé dans VBA selon deux méthodes. nous exécutons le code, Test sub crée un objet wc de la classe Welcome. Cet objet possède toutes les propriétés de la classe Welcome. Nous utilisons la méthode sayHiTo de la classe Welcome pour dire bonjour à l’utilisateur.

Création d’objets dans Excel VBA

  1. .. Création instantanée Dans la création instantanée, nous créons un objet en déclarant l’objet avec la clé «nouvelle». Dans notre exemple ci-dessus, nous avons utilisé la création instantanée.

Dim wc As New Welcome

{vide} 2. Création retardée En création différée, nous déclarons d’abord l’objet uniquement. Nous n’utilisons pas le mot-clé «nouveau». Afin d’utiliser l’objet, nous devons l’initialiser avec le mot-clé « new ».

Sub test()

Dim wc As Welcome

'wc.sayHiTo ("Jack") 'generates error since wc is not initialised yet

'initialising object

Set wc = New Welcome

wc.sayHiTo ("Cory") 'this will work.

End Sub

Accès aux variables d’une classe

Dans les exemples ci-dessus, nous avons utilisé des variables publiques pour la classe mais il est faux de s’entraîner. Nous devons éviter d’utiliser des variables publiques dans une classe.

Maintenant, la question est de savoir comment accéder aux variables de la classe. Auparavant, nous utilisions un sous-programme pour accéder au nom, mais les classes VBA fournissent des propriétés qui sont utilisées pour systématiquement mettre à jour et récupérer les valeurs de variables privées de la classe. Les propriétés sont plus élégantes que sub ou fonction pour mettre à jour et accéder aux variables privées. Voyons comment.

Syntaxe de la propriété de classe

Private name As String

Private var1 As Integer

Private var2 As Integer

Property Let MyName(nm As String)

name = nm

End Property

Property Get MyName() As String

MyName = name

End Property

Utilisons-les dans un module.

Sub test()

'creating class object

Dim wc As New Welcome

Dim wc1 As New Welcome



'using properties

wc.MyName = "Exceltip.com"

wc1.MyName = "ExcelForum.com"



Debug.Print wc.MyName

Debug.Print wc1.MyName



End Sub

Lorsque vous exécuterez ce test sub, vous obtiendrez deux noms imprimés pour deux objets de la classe « Welcome ».

En quoi les propriétés sont différentes des sous et des fonctions

Dans l’exemple ci-dessus, notez que nous avons utilisé la propriété MyName comme variable. Nous avons initialisé la valeur de la variable « Name » simplement en écrivant wc.MyName = « assdf ». Cette ligne de commande a appelé la propriété appeléeProperty Get MyName () As String. Nous n’avons passé aucune valeur entre parenthèses comme nous l’avons fait au début.

De même, pour imprimer les valeurs de la variable « Name », nous avons utilisé commandDebug.Print wc.MyName. N’est-ce pas aussi simple qu’une initialisation de variable normale? La seule différence est que vous pouvez faire beaucoup de choses dans le segment des propriétés. Vous mettez la validation des données, le calcul, la communication, etc. et l’utilisateur ne verra que le résultat.

Une autre différence est que nous pouvons utiliser le même nom de propriété pour let et get * part. Cela rend les choses plus faciles et moins déroutantes.

Alors oui les gars, c’était un exemple simple de module de classe dans Excel VBA.

Ce n’est que la pointe de l’iceberg, il y a beaucoup de jus dans ce sujet que nous explorerons dans des articles ultérieurs. Nous allons explorer chacun d’eux un par un de la manière la plus simple possible. J’espère avoir été suffisamment explicatif pour vous faire comprendre cela. Si vous avez des doutes sur ce sujet ou sur tout autre sujet Excel VBA, mentionnez-le dans la section commentaires ci-dessous.

Articles liés:

`link: / modules-class-modules-in-vba-insert-a-new-module-from-a-file-using-vba-in-microsoft-excel [Importer un module à partir d’un fichier à l’aide de VBA dans Microsoft Excel] `| Apprenez à importer un module entier à partir d’un autre fichier à l’aide de VBA.

link: / modules-class-modules-in-vba-create-a-new-module-using-vba-in-microsoft-excel [Créer un nouveau module en utilisant VBA dans Microsoft Excel] | Vous pouvez utiliser un module pour créer un autre modèle dans VBA. Cela peut vous aider à minimiser les frais généraux supplémentaires.

link: / modules-class-modules-in-vba-add-a-procedure-to-a-module-using-vba-in-microsoft-excel [Ajouter une procédure à un module utilisant VBA dans Microsoft Excel] | Pour ajouter des procédures aux modules, utilisez automatiquement ce code VBA.

Articles populaires:

lien: / clavier-formule-raccourcis-50-excel-raccourcis-pour-augmenter-votre-productivité [50 raccourcis Excel pour augmenter votre productivité] | Accélérez votre tâche. Ces 50 raccourcis vous permettront de travailler encore plus rapidement sur Excel.

lien: / formules-et-fonctions-introduction-de-vlookup-function [La fonction RECHERCHEV dans Excel] | C’est l’une des fonctions les plus utilisées et les plus populaires d’Excel qui est utilisée pour rechercher la valeur de différentes plages et feuilles. lien: / tips-countif-in-microsoft-excel [COUNTIF dans Excel 2016] | Comptez les valeurs avec des conditions en utilisant cette fonction étonnante.

Vous n’avez pas besoin de filtrer vos données pour compter une valeur spécifique. La fonction Countif est indispensable pour préparer votre tableau de bord.

lien: / excel-formule-et-fonction-excel-sumif-function [Comment utiliser la fonction SUMIF dans Excel] | C’est une autre fonction essentielle du tableau de bord. Cela vous aide à résumer les valeurs sur des conditions spécifiques.