Fonction VBA MID

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 y a des situations où nous voulons extraire le prénom, le nom ou le deuxième prénom. Dans ces situations, les formules de catégorie 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 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?

Vous pouvez télécharger ce modèle de fonction VBA MID ici - Modèle de fonction VBA MID

Exemple 1

Supposons que vous ayez le mot «Hello Good Morning» et que vous vouliez 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. Donc, notre valeur est "Hello Good Morning".

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 commence à partir d'un 7ème 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 

Étape 4: Depuis que nous extrayons le premier nom, la position de départ est 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 lets 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 the 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 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 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)     Next i End Sub 

Copy & Paste the above code in your module. After copying the code, run this code using the F5 key or you can run manually.

It should give the result like the below.

Things to Remember

  • Length argument in MID function is optional. If you ignore this it will take 1 as the default value.
  • In order to determine the length or starting position use Instr function along with MID function.