Fonction Excel VBA MID
La fonction VBA MID extrait les valeurs du milieu de la phrase ou du mot fourni. La fonction MID est classée sous la fonction String and Text et c'est une fonction de feuille de calcul, ce qui signifie que pour utiliser cette fonction dans VBA, nous devons utiliser la méthode application.worksheet.
Il existe des situations dans lesquelles nous voulons extraire le prénom, le nom ou le deuxième prénom. Dans ces situations, les formules des catégories TEXT sont utiles pour répondre à nos exigences. L'utilisation de cette fonction est la même que celle de la référence de feuille de calcul et la syntaxe est également la même.

Syntaxe
Comme notre fonction Excel MID, dans VBA également, elle a un ensemble similaire de valeurs de syntaxe. Voici la syntaxe.

- Chaîne à rechercher: ce n'est rien d'autre que la phrase de la chaîne, c'est-à-dire à partir de quelle chaîne ou mot vous souhaitez extraire les valeurs.
- Position de départ: à partir de quelle position de la phrase vous souhaitez extraire. Cela devrait être une valeur numérique.
- Nombre de caractères à extraire: À partir de la position de départ, combien de caractères souhaitez-vous extraire? Cela devrait également être une valeur numérique.
Comment utiliser la fonction VBA MID?
Exemple 1
Supposons que vous ayez le mot «Hello Good Morning» et que vous souhaitiez extraire «Good» de cette phrase. Suivez les étapes ci-dessous pour extraire la valeur.
Étape 1: Créez d'abord un nom de macro.
Code:
Sub MID_VBA_Example1 () End Sub

Étape 2: déclarez une variable comme "STRING".
Code:
Sub MID_VBA_Example1 () Dim MiddleValue As String End Sub

Étape 3: Attribuez maintenant une valeur à cette variable via la fonction MID.
Code:
Sub MID_VBA_Example1 () Dim MiddleValue As String MiddleValue = Mid (End Sub

Étape 4: Le premier argument est String, c'est-à-dire de quelle valeur nous voulons extraire. Notre valeur est donc «Bonjour, bonjour».
Code:
Sub MID_VBA_Example1 () Dim MiddleValue As String MiddleValue = Mid ("Hello Good Morning", End Sub

Étape 5: Ensuite, quelle est la position de départ du personnage que vous souhaitez extraire. Dans ce cas, Good morning part d'un 7 e caractère.
Remarque: l' espace est également un caractère.
Code:
Sub MID_VBA_Example1 () Dim MiddleValue As String MiddleValue = Mid ("Hello Good Morning", 7 End Sub

Étape 6: La longueur n'est rien d'autre que le nombre de caractères que vous souhaitez extraire. Nous devons extraire 4 caractères ici car la longueur du mot «Bon» est de 4 caractères.
Code:
Sub MID_VBA_Example1 () Dim MiddleValue As String MiddleValue = Mid ("Hello Good Morning", 7, 4) End Sub

Étape 7: Nous avons complété la formule. Montrons le résultat de la variable dans la boîte de message.
Code:
Sub MID_VBA_Example1 () Dim MiddleValue As String MiddleValue = Mid ("Hello Good Morning", 7, 4) MsgBox MiddleValue End Sub

Étape 8: Exécutez maintenant ce code manuellement ou appuyez sur la touche F5, la boîte de message doit afficher le mot «Good».

Production:

Exemple # 2
Supposons que vous ayez un prénom et un nom ensemble, et que le mot soit "Ramesh, Tendulkar". Entre le prénom et le nom, le caractère de séparation est une virgule (,). Maintenant, nous devons extraire uniquement le prénom.
Étape 1: Créez une macro et définissez une variable.
Code:
Sub MID_VBA_Example2 () Dim FirstName As String End Sub

Étape 2: Attribuez maintenant une valeur à cette variable via la fonction MID.
Code:
Sub MID_VBA_Example2 () Dim FirstName As String FirstName = Mid (End Sub

Étape 3: Notre chaîne est «Ramesh.Tendulkar», alors entrez ce mot.
Code:
Sub MID_VBA_Example2() Dim FirstName As String FirstName = Mid("Ramesh,Tendulkar", End Sub

Step 4: Since we are extracting the first name starting position is 1.
Code:
Sub MID_VBA_Example2() Dim FirstName As String FirstName = Mid("Ramesh,Tendulkar",1, End Sub

Step 5: Length of the character you can directly enter as 6, but this is not the best way. In order to determine the length, let’s apply one more formula called Instr.
Code:
Sub MID_VBA_Example2() Dim FirstName As String FirstName = Mid("Ramesh,Tendulkar",1,InStr( End Sub

Step 6: For this starting position is 1.
Code:
Sub MID_VBA_Example2() Dim FirstName As String FirstName = Mid("Ramesh,Tendulkar",1,InStr(1, End Sub

Step 7: String 1 is our name, i.e., “Ramesh, Tendulkar.”
Code:
Sub MID_VBA_Example2() Dim FirstName As String FirstName = Mid("Ramesh,Tendulkar",1,InStr(1,"Ramesh,Tendulkar", End Sub

Step 8: String 2 what is the separator of first name & last name, i.e., comma (,).
Code:
Sub MID_VBA_Example2() Dim FirstName As String FirstName = Mid("Ramesh,Tendulkar",1,InStr(1,"Ramesh,Tendulkar",",") End Sub

Note: Instr function will return how many characters are there in the word “Ramesh, Tendulkar” from the string 1 position to the string 2 positions, i.e., until comma (,). So Instr will return 7 as a result, including comma (,).
Step 9: Since Instr function returns no., of characters including comma (,) we need to minus 1 character here. So enter -1 after the close of Instr function.
Code:
Sub MID_VBA_Example2() Dim FirstName As String FirstName = Mid("Ramesh,Tendulkar", 1, InStr(1, "Ramesh,Tendulkar", ",") - 1) End Sub

Step 10: Now show the value of the variable in the message box.
Code:
Sub MID_VBA_Example2() Dim FirstName As String FirstName = Mid("Ramesh,Tendulkar", 1, InStr(1, "Ramesh,Tendulkar", ",") - 1) MsgBox FirstName End Sub

Step 11: Run this code using the F5 key, or you can run this code manually. We would get the first name in the message box.

Output:

Example #3
Now I will give you one assignment to solve. I have a list of First Name & Last Name.

From this list, I want you to extract the first name only. All the best!!!!.
Ok, If you have tried and not able to get the result, then the below code would help you in this.
Code:
Sub MID_VBA_Example3 () Dim i As Long For i = 2 To 15 Cells (i, 2) .Value = Mid (Cells (i, 1) .Value, 1, InStr (1, Cells (i, 1) .Value, " , ") - 1) Suivant i End Sub
Copiez et collez le code ci-dessus dans votre module. Après avoir copié le code, exécutez ce code à l'aide de la touche F5 ou vous pouvez l'exécuter manuellement.

Cela devrait donner un résultat comme ci-dessous.

Choses dont il faut se rappeler
- L'argument de longueur dans la fonction MID est facultatif. Si vous l'ignorez, la valeur par défaut sera 1.
- Afin de déterminer la longueur ou la position de départ, utilisez la fonction Instr avec la fonction MID.