Попробуйте следующее
Option Explicit
Public Sub EMail()
Application.ScreenUpdating = False
Dim OutApp As Object
Set OutApp = CreateObject("Outlook.Application")
Dim Sht As Worksheet
Set Sht = ThisWorkbook.Sheets("Sheet1")
Dim Cell As Range
For Each Cell In Sht.Range("A2", Sht.Range("A100").End(xlUp))
DoEvents
If Sht.Cells(Cell.Row, "B").Value Like "?*@?*.?*" And _
Sht.Cells(Cell.Row, "C").Value = "0" Or _
Sht.Cells(Cell.Row, "D").Value = "0" Or _
Sht.Cells(Cell.Row, "E").Value = "0" Then
Dim MissingItem As String
Select Case "0"
Case Sht.Cells(Cell.Row, "C").Value
MissingItem = "KPI's"
Case Sht.Cells(Cell.Row, "D").Value
MissingItem = "Comments"
Case Sht.Cells(Cell.Row, "E").Value
MissingItem = "Org Chart"
End Select
Dim OutMailKPI As Object
Set OutMailKPI = OutApp.CreateItem(0)
With OutMailKPI
.To = Sht.Cells(Cell.Row, "B").Value
.Subject = "Reminder"
.Body = "Dear, " & Sht.Cells(Cell.Row, "A").Value _
& vbNewLine & vbNewLine & MissingItem
.Display
End With
End If
Next Cell
Set OutApp = Nothing
Application.ScreenUpdating = True
End Sub
Я использую Jewelcli, и это довольно хорошо.
Можно также найти обсуждение различных доступных библиотек здесь.
https://github.com/kohsuke/args4j - имеет довольно хорошую лицензию функций PLUS MIT
Посмотрите на анализатор простых аргументов Java. Очень зрелый и полнофункциональный парсер аргументов для Java. JSAP