Verify Email Address Format in VBA
Code in this page will verify if a email id is in proper format.
This code uses regex pattern matching. To do this, first You need to define a regular expression pattern that will match a valid email id.
A email id has a name, domain name & gTLD (like: .com , .org, .net etc.,)
Example: abc@officetricks.com
Here is the vba code that does the validation of email address.
Function IsValidEmail(sEmailAddress As String) As Boolean 'Code from Officetricks 'Define variables Dim sEmailPattern As String Dim oRegEx As Object Dim bReturn As Boolean 'Use the below regular expressions sEmailPattern = "^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$" 'or sEmailPattern = "^([a-zA-Z0-9_\-\.]+)@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$" 'Create Regular Expression Object Set oRegEx = CreateObject("VBScript.RegExp") oRegEx.Global = True oRegEx.IgnoreCase = True oRegEx.Pattern = sEmailPattern bReturn = False 'Check if Email match regex pattern If oRegEx.Test(sEmailAddress) Then 'Debug.Print "Valid Email ('" & sEmailAddress & "')" bReturn = True Else 'Debug.Print "Invalid Email('" & sEmailAddress & "')" bReturn = False End If 'Return validation result IsValidEmail = bReturn End Function
The above function can also be used a UDF (User Defined Function). Which means that you can use this inside the Excel worksheet as well.
Example: Place this formula in a Worksheet.
- =IsValidEmail(“kumarapush123@gmail.com”) will return True
- =IsValidEmail(“@gmail.com”) will return False
There are 2 regular expression patterns mentioned in the code. You can use one of the 2. or even check if a email address passes both validation to get concrete results.
External Reference:
1. geeksforgeeks.org on email address validation using python programming
2. geeksengine.com for another vba email validation code with regex