Déclaration de commutateur VBA Excel
Le commutateur en VBA est similaire à la fonction de sélection de cas. La seule différence entre ceux-ci est que nous devons écrire des codes beaucoup moins importants dans un commutateur par rapport au cas sélectionné. Nous pouvons écrire une instruction switch dans une sous-procédure ou nous pouvons l'écrire en tant que fonction définie par l'utilisateur dans VBA.
Switch in VBA évalue une expression et donne la sortie en fonction des conditions de cette expression. Dans certaines déclarations de cas, nous avons défini les cas que si nous avons un cas, le résultat devrait être b et ainsi de suite. Cela nécessitait d'écrire un grand nombre de codes pour une instruction de sélection de cas, mais dans Switch, nous pouvons fusionner toutes les conditions et expressions dans une seule instruction plutôt que d'avoir plusieurs instructions de cas.
Syntaxe de l'instruction Switch
Le commutateur calcule la première expression et si la valeur est vraie, elle renvoie la valeur de l'expression et si la valeur de l'expression 1 n'est pas vraie, elle continue pour le même calcul pour l'expression 2 et si le résultat est vrai, la valeur 2 est affichée mais si l'expression retournée est fausse, le commutateur passe à une autre expression.
Donc, que se passe-t-il si aucune des expressions n'est vraie et qu'elles sont toutes renvoyées comme fausses, nous obtenons une erreur d'exécution dans ce cas, sauf si nous avons une gestion d'erreur préventive pour un tel scénario.
Comment utiliser l'instruction Switch dans Excel VBA?
Vous trouverez ci-dessous les différents exemples d'utilisation de la déclaration de commutateur VBA dans Excel.
Vous pouvez télécharger ce modèle Excel de commutateur VBA ici - Modèle Excel de commutateur VBACommutateur VBA - Exemple # 1
Commençons par l'exemple de base pour avoir une idée de l'instruction de commutateur VBA. Nous prendrons l'entrée de l'utilisateur et en fonction de cette entrée, nous définirons la sortie. Nous prendrons l'entrée du numéro 1 à 5 et sur la base de l'entrée, nous aurons des résultats prédéfinis mais si l'utilisateur entre un nombre autre que notre plage, nous devrons gérer cette erreur.
Suivez les étapes ci-dessous pour utiliser l'instruction Switch dans Excel VBA:
Étape 1: Dans l'onglet Visual Basic, entrez dans l'éditeur VB à partir de l'onglet développeur.
Étape 2: Dans la fenêtre de l'éditeur VB, insérez un nouveau module à partir de l'onglet Insertion.
Étape 3: Déclarez une nouvelle sous-procédure dans le nouveau module que vous venez de créer.
Code:
Sous-échantillon () End Sub
Étape 4: Déclarez deux variables A et B, l'une sous forme d'entier et l'autre sous forme de chaîne.
Code:
Sub Sample () Dim A As Integer Dim B As String End Sub
Étape 5: Dans la variable A, stockez la valeur est donnée par l'utilisateur en utilisant la fonction de zone de saisie.
Code:
Sub Sample () Dim A As Integer Dim B As String A = InputBox ("Enter a Value", "value should be between 1 to 5") End Sub
Étape 6: Maintenant, dans la variable B, nous utiliserons une instruction de commutateur VBA pour avoir évalué le résultat selon l'entrée fournie par l'utilisateur.
Code:
Sous-échantillon () Dim A As Integer Dim B As String A = InputBox ("Enter a Value", "value should be between 1 to 5") B = Switch (A = 1, "One", A = 2, "Two ", A = 3, " Trois ", A = 4, " Quatre ", A = 5, " Cinq ") End Sub
Étape 5: Affichez la valeur stockée dans B à l'aide de la fonction MSGBOX.
Code:
Sous-échantillon () Dim A As Integer Dim B As String A = InputBox ("Enter a Value", "value should be between 1 to 5") B = Switch (A = 1, "One", A = 2, "Two ", A = 3, " Trois ", A = 4, " Quatre ", A = 5, " Cinq ") MsgBox B End Sub
Étape 6: Exécutez le code ci-dessus en appuyant sur la touche F5 et il nous demande d'entrer un entier. Fournissez un chiffre 3 et appuyez sur ok pour voir le résultat.
Étape 7: Maintenant, réexécutons le code et entrez le numéro 6 et voyons le résultat que nous obtenons.
Nous obtenons l'erreur d'exécution car dans notre instruction switch, il n'y a pas d'expression à définir 6. Donc, dans de tels scénarios, nous devons avoir une gestion préventive des erreurs.
Étape 8: Pour surmonter cette erreur d'exécution, déclarez une autre variable Var comme Variant.
Code:
Sous-échantillon () Dim A As Integer Dim B As String Dim var As Variant A = InputBox ("Enter a Value", "value should be between 1 to 5") B = Switch (A = 1, "One", A = 2, "Deux", A = 3, "Trois", A = 4, "Quatre", A = 5, "Cinq") MsgBox B End Sub
Étape 9: Avant notre instruction switch, utilisez l'instruction on error goto pour que si le code trouve une erreur, il sache où aller.
Code:
Sub Sample () Dim A As Integer Dim B As String Dim var As Variant A = InputBox ("Enter a Value", "value should be between 1 to 5") On Error GoTo var B = Switch (A = 1, "One ", A = 2, " Deux ", A = 3, " Trois ", A = 4, " Quatre ", A = 5, " Cinq ") MsgBox B End Sub
Étape 10: Définissez maintenant ce qui se passera si le code rencontre une erreur,
Code:
Sub Sample () Dim A As Integer Dim B As String Dim var As Variant A = InputBox ("Enter a Value", "value should be between 1 to 5") On Error GoTo var B = Switch (A = 1, "One ", A = 2, " Deux ", A = 3, " Trois ", A = 4, " Quatre ", A = 5, " Cinq ") MsgBox B var: MsgBox" Vous avez entré un nombre non valide "Resume Next End Sub
Étape 11: Maintenant, exécutons à nouveau le code en appuyant sur F5 ou en cliquant sur le bouton Lecture et saisissez la valeur 6, puis appuyez sur ok pour voir le résultat final dans le cas où l'instruction switch rencontre une erreur.
Commutateur VBA - Exemple # 2
Pour cet exemple, j'ai des données dans la feuille 1 qui contient le nom de certains films et leur durée en minutes. En fonction de leur durée, je veux définir le film court ou long ou super long. Jetez un œil aux données ci-dessous.
Suivez les étapes ci-dessous pour utiliser l'instruction Switch dans Excel VBA:
Étape 1: Commençons par le même module et commençons par définir une autre sous-procédure comme suit.
Sub Sample1 () End Sub
Étape 2: Déclarez deux variables A et B, l'une comme un entier et l'autre comme une chaîne comme suit,
Sub Sample1 () Dim A As Integer Dim B As String End Sub
Étape 3: Maintenant, dans la variable A, stockons la valeur de la durée du film pour l'un des films.
Sub Sample1 () Dim A As Integer Dim B As String A = Range ("A3"). Offset (0, 1) .Value End Sub
Étape 4: Maintenant, dans la variable B, utilisons une instruction de commutateur VBA pour définir le scénario pour chaque longueur de film.
Sub Sample1 () Dim A As Integer Dim B As String A = Range ("A3"). Offset (0, 1) .Value B = Switch (A <= 70, "Too Short", A <= 100, "Short ", A <= 120, " Long ", A <= 150, " Too Long ") End Sub
Étape 5: Et si la valeur est supérieure à 180, devons-nous avoir un autre gestionnaire d'erreur ici ou nous pouvons simplement écrire une autre expression comme True, Value. Comme toutes les autres valeurs seront retournées car le faux code exécutera cette expression.
Sub Sample1 () Dim A As Integer Dim B As String A = Range ("A3"). Offset (0, 1) .Value B = Switch (A <= 70, "Too Short", A <= 100, "Short ", A <= 120, " Long ", A <= 150, " Too Long ", True, " Boring ") End Sub
Étape 6: Affichez la valeur de B à l'aide de la fonction msgbox.
Sub Sample1 () Dim A As Integer Dim B As String A = Range ("A3"). Offset (0, 1) .Value B = Switch (A <= 70, "Too Short", A <= 100, "Short ", A <= 120, " Long ", A <= 150, " Too Long ", True, " Boring ") MsgBox B End Sub
Étape 7: Exécutez le code en appuyant sur la touche F5 ou en cliquant sur le bouton Lecture et voyez la sortie.
La cellule A3 a un film 2 dont la longueur était de 100 donc la sortie est aussi courte.
Commutateur VBA - Exemple # 3
Laissons utiliser l'instruction switch pour créer une fonction définie par l'utilisateur pour l'exemple ci-dessus afin que nous puissions l'utiliser dans notre feuille de calcul chaque fois que nécessaire.
Suivez les étapes ci-dessous pour utiliser l'instruction Switch dans Excel VBA:
Étape 1: Dans le même module, déclarez une fonction appelée longueur de film.
Fonction FilmLength (Leng As Integer) As String End Function
Étape 2: utilisez maintenant une instruction VBA Switch pour définir les paramètres en fonction de la longueur comme suit,
Fonction FilmLength (Leng As Integer) As String FilmLength = Switch (Leng <= 70, "Too Short", Leng <= 100, "Short", Leng <= 120, "Long", Leng <= 150, "Too Long", True, "Boring") Fin de fonction
Étape 3: Maintenant, allons dans la feuille de calcul où nous avions nos données, tapez = FilmLength (
Étape 4: Nous pouvons voir notre fonction y donner un argument sous forme de valeurs dans la cellule B2.
Étape 5: Après avoir appliqué la formule, appuyez sur Entrée.
Étape 6: Faites maintenant glisser la fonction vers la cellule C10 et voyez le résultat.
Choses dont il faut se rappeler
- La fonction Switch évalue l'expression qu'elle contient. Si la première expression est évaluée comme vraie, elle n'évalue pas les autres expressions.
- Si aucune expression n'est vraie, elle renvoie une erreur d'exécution.
- Nous devons avoir un gestionnaire d'erreurs dans l'instruction ou l'expression switch afin que si chaque expression est retournée false, nous ne rencontrons pas d'erreur d'exécution.
- Un commutateur est similaire à la sélection de l'instruction case.
Articles recommandés
Ceci est un guide du commutateur VBA. Expliquez ici comment utiliser l'instruction switch dans Excel VBA ainsi que quelques exemples pratiques et un modèle Excel téléchargeable. Vous pouvez également consulter nos autres articles suggérés -
- Utilisation de la fonction VBA InStr
- Fonction SWITCH Excel
- Numéro aléatoire VBA
- Fonction CONCATENER dans Excel