Déclaration d'ensemble VBA

Déclaration d'ensemble VBA Excel

VBA Set est une instruction qui est utilisée pour assigner n'importe quelle clé de valeur dit un objet ou une référence à une variable, nous utilisons cette fonction pour définir le paramètre d'une certaine variable, par exemple, si nous écrivons Set M = A ce qui signifie maintenant M reference a les mêmes valeurs et attributs similaires à ceux de A.

Dans VBA, un objet est au cœur de l'Excel car sans objets, nous ne pouvons rien faire. Les objets sont classeur, feuille de calcul et plage. Lorsque nous déclarons une variable, nous devons lui affecter un type de données et nous pouvons également affecter des objets en tant que types de données. Pour attribuer une valeur aux variables d'objet déclarées, nous devons utiliser le mot «SET». Le mot «Set» utilisé pour désigner un nouvel objet dans VBA, par exemple, se référant à la plage particulière de la feuille de calcul particulière.

Comment utiliser Excel VBA Set Statement?

Vous pouvez télécharger ce modèle de déclaration d'ensemble VBA ici - Modèle de déclaration d'ensemble VBA

# 1 - Instruction Set avec des variables d'objet de plage

Par exemple, supposons que vous souhaitiez utiliser la plage A1 à D5 assez souvent. Au lieu d'écrire le code comme Range ("A1: D5") chaque fois que nous pouvons déclarer la variable comme range et définir la référence de plage comme Range ("A1: D5")

Étape 1: Déclarez la variable en tant qu'objet Range.

Code:

 Sous-ensemble_exemple ()

Dim MyRange As Range

End Sub

Étape 2: Au moment où nous attribuons le type de données comme plage, utilisez le mot «Set».

Code:

 Sub Set_Example () Dim MyRange As Range Set MyRange = End Sub 

Étape 3: mentionnez maintenant la plage.

Code:

 Sub Set_Example () Dim MyRange As Range Set MyRange = Range ("A1: D5") End Sub 

Étape 4: Maintenant, la variable «MyRange» est égale à la plage A1 à D5. En utilisant cette variable, nous pouvons accéder à toutes les propriétés et méthodes de cette plage.

Nous pouvons copier, ajouter un commentaire dans Excel et faire beaucoup d'autres choses.

Par exemple, j'ai créé des numéros ici.

Maintenant, en utilisant la variable, je changerai la taille de la police à 12.

Code:

 Sub Set_Example () Dim MyRange As Range Set MyRange = Range ("A1: D5") MyRange.Font.Size = 12 End Sub 

Cela changera la taille de la police de la plage attribuée.

Comme ça, nous pouvons faire beaucoup de choses avec une plage particulière en utilisant le mot «Set».

# 2 - Définir une instruction avec des variables d'objet de feuille de calcul

Nous avons vu comment «set» fonctionne avec un objet range dans VBA. Cela fonctionne exactement de la même manière que l'objet de feuille de calcul.

Supposons que vous ayez 5 feuilles de calcul dans votre classeur et que vous souhaitiez continuer à revenir à la feuille de calcul en particulier, vous pouvez définir ce nom de feuille de calcul sur la variable objet définie.

Par exemple, regardez le code ci-dessous.

Code:

 Sub Set_Worksheet_Example () Dim Ws As Worksheet Set Ws = Worksheets ("Summary Sheet") End Sub 

Dans le code ci-dessus, la variable «Ws» définie comme variable d'objet, et dans la ligne suivante en utilisant le mot «Set», nous définissons la variable sur la feuille de calcul nommée «Summary Sheet».

Maintenant, en utilisant cette variable, nous pouvons faire toutes les choses qui lui sont associées. Jetez un œil aux deux ensembles de code ci-dessous.

# 1 - Sans "Définir" le mot

Code:

 Sub Set_Worksheet_Example1 () 'Pour sélectionner la feuille Feuilles de calcul ("Feuille de résumé"). Sélectionnez' Pour activer la feuille Feuilles de travail ("Feuille de résumé"). Activez 'Pour masquer la feuille Feuilles de travail ("Feuille de résumé"). Visible = xlVeryHidden' À afficher la feuille Feuilles de calcul ("Feuille de résumé"). Visible = xlVisible End Sub 

Chaque fois que j'ai utilisé l'objet feuilles de calcul pour faire référence à la feuille «Fiche récapitulative». Cela rend le code si long et nécessite beaucoup de temps pour taper.

Dans le cadre du code énorme, il est frustrant de taper le nom de la feuille de calcul comme celui-ci chaque fois que vous devez référencer la feuille de calcul.

Jetez maintenant un œil à l'avantage d'utiliser le mot Set in Code.

# 2 - Avec "Définir" le mot

Code:

 Sub Set_Worksheet_Example () Dim Ws As Worksheet Set Ws = Worksheets ("Summary Sheet") 'Pour sélectionner la feuille Ws.Sélectionnez' Pour activer la feuille Ws.Activate 'Pour masquer la feuille Ws.Visible = xlVeryHidden' Pour afficher la feuille Ws .Visible = xlVisible End Sub 

Au moment où nous définissons le nom de la feuille de calcul, nous pouvons voir le nom de la variable tout en entrant le code dans le cadre de la liste.

# 3 - Définir une instruction avec des variables d'objet de classeur

Le véritable avantage du mot «Set» dans VBA survient lorsque nous devons référencer différents classeurs.

Lorsque nous travaillons avec différents classeurs, il est si difficile de taper le nom complet du classeur avec son extension de fichier.

Supposons que vous ayez deux classeurs différents nommés «Fichier de synthèse des ventes 2018.xlsx» et «Fichier de synthèse des ventes 2019.xlsx», nous pouvons définir les deux classeurs comme le code ci-dessous.

Code:

 Sub Set_Workbook_Example1 () Dim Wb1 As Workbook Dim Wb2 As Workbook Set Wb1 = Workbooks ("Sales Summary File 2018.xlsx") Set Wb2 = Workbooks ("Sales Summary File 2019.xlsx") End Sub 

Désormais, la variable Wb1 est égale au classeur nommé «Sales Summary File 2018.xlsx» et la variable Wb2 est égale au classeur nommé «Sales Summary File 2019.xlsx».

En utilisant cette variable, nous pouvons accéder à toutes les propriétés et méthodes associées au classeur.

Nous pouvons raccourcir le code comme ci-dessous.

Sans utiliser Set Keyword pour activer le classeur:

Classeurs ("Fichier de synthèse des ventes 2018.xlsx"). Activer

Utilisation du mot-clé Set pour activer le classeur:

Wb1.Activate

Cela rend l'écriture du lot de code plus simple et une fois que le nom du classeur est défini, il y a un souci d'erreur typo des noms de classeur.