VBA Set Statemment - Comment attribuer des valeurs aux variables d'objet?

Déclaration d'ensemble VBA Excel

VBA Set est une instruction qui est utilisée pour affecter 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 pour 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, on ne peut rien faire. Les objets sont classeur, feuille de calcul et plage. Lorsque nous déclarons une variable, nous devons lui attribuer 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?

# 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, 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 «Définir».

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, objectif, j'ai créé quelques chiffres ici.

En utilisant maintenant 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.

De cette manière, nous pouvons faire beaucoup de choses avec une plage particulière en utilisant le mot "Définir".

# 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.

Disons que vous avez 5 feuilles de calcul dans votre classeur et que vous souhaitez revenir à la feuille de calcul en particulier. Vous pouvez définir ce nom de feuille de calcul sur la variable d'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 une 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 de feuilles de calcul pour faire référence à la feuille «Feuille de résumé», cela rend le code si long et nécessite beaucoup de temps pour taper.

Dans le cadre de l'énorme code, 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") 'To select the sheet Ws.Select 'To Activate the sheet Ws.Activate 'To hide the sheet Ws.Visible = xlVeryHidden 'To unhide the sheet Ws.Visible = xlVisible End Sub

The moment we set the worksheet name, we can see the variable name while entering the code as part of the list.

#3 - Set Statement with Workbook Object Variables

The real advantage of the word “Set” in VBA arises when we need to reference different workbooks.

When we work with different workbooks, it is so hard to type in the full name of the workbook, along with its file extension.

Assume you have two different workbooks named “Sales Summary File 2018.xlsx” and “Sales Summary File 2019.xlsx” we can set the two workbooks like the below code.

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 typographique des noms de classeur.

Articles intéressants...