Try something like this:
Option Explicit
Sub SendMail()
Dim sEmpName As String, sSheetName As String
Dim i As Integer
Dim srcWsh As Worksheet
On Error GoTo Err_SendMail
Set srcWsh = ThisWorkbook.Worksheets("Consolidate")
i = 5
Do While srcWsh.Range("A" & i) <> ""
sEmpName = srcWsh.Range("D" & i)
sSheetName = srcWsh.Range("D" & i)
If EmpSheetExists(sSheetName) Then
MsgBox "Send e-mail to: " & sEmpName, vbInformation, "Information..."
End If
i = i + 1
Loop
Exit_SendMail:
On Error Resume Next
Set srcWsh = Nothing
Exit Sub
Err_SendMail:
MsgBox Err.Description, vbExclamation, Err.Number
Resume Exit_SendMail
End Sub
Function EmpSheetExists(sEmpShName As String) As Boolean
Dim wsh As Worksheet, retVal As Boolean
On Error Resume Next
Set wsh = ThisWorkbook.Worksheets(sEmpShName)
retVal = (wsh Is Nothing)
Set wsh = Nothing
EmpSheetExists = retVal
End Function
[EDIT #1]
How to create new Outllok mail?
MailItem (Outlook 2003)[
^]
Sub SendMyMail(sFromWho As String, sTo As String, sBody As String)
Set myOlApp = CreateObject("Outlook.Application")
Set myItem = myOlApp.CreateItem(olMailItem)
With myItem
.SenderName = sFrom
.To = sTo
.Body = sBody
.Send
End With
End Sub
SenderName[
^]
To[
^]
Body[
^]
BodyFormat[
^]
Send[
^]
[/EDIT]