Function IsValidEmail(emailAddress) 'Declare variables Dim ValidEmail, emailParts, iLoopCounter, emailChar, acceptableChars ValidEmail = True 'set the default result to True 'acceptableChars are the characters that we will allow in our email acceptableChars="abcdefghijklmnopqrstuvwxyz.-_@" 'use the Split function to create an array with the @ as the separator 'so if your email was test@tester.com the email would be split into an array 'with the first array element holding "test" and the second "tester.com" emailParts = Split(emailAddress, "@") 'check to make sure that there is only 1 @ and that there are 2 parts 'remember arrays are zero based 'Using the UBound function will return the highest element in the array 'So if it's a valid email the UBound function will return 1, i.e. 0 start if UBound(emailParts) <> 1 Then ValidEmail = false Else 'Check the length of each part of the email address 'first part can be just one character, 2nd part must be atleast 4 if Len(emailParts(0))<1 OR Len(emailParts(1))<4 Then ValidEmail = false End If 'check first character on the left part isn't a "." using Left function if Left(emailParts(0), 1)="." Then ValidEmail = false End If 'check the last & 2nd character from right part using Right function if Right(emailParts(1), 1) = "." OR Right(emailParts(1), 2) = "." Then ValidEmail = false End If 'check that there is a . in the second part of the email address - .com if InStr(emailParts(1), ".") <= 0 Then ValidEmail = false End if 'check that there shouldn't be a _ in the second part of the email address if InStr(emailParts(1), "_") >0 Then ValidEmail = false End if End If 'loop through each character of email For iLoopCounter = 1 to Len(emailAddress) 'Use Lcase & Mid functions, Mid function used to return each individual character 'in the email, and then Lcase converts it into lowercase emailChar = Lcase(Mid(emailAddress, iLoopCounter, 1)) 'Check if the emailAddress characters are acceptable if InStr(acceptableChars, emailChar) = 0 and Not IsNumeric(emailChar) Then ValidEmail = false End if Next 'check if there is 2 . in a row if InStr(emailAddress, "..") > 0 Then ValidEmail=false End If 'check if there is @. in a row if InStr(emailAddress, "@.") > 0 Then ValidEmail=false End if IsValidEmail=ValidEmail End function