実際にExcel (2013)
を取得する簡単な方法はありますかsend an email (Outlook or Exchange)
特定の基準が満たされている場合は?
例えば:
if A2 is between 80 and 90, send email to G2.
A2は、today's date
までの従業員の開始日の結果であり、80から90の結果は、90日のレビューが必要であることを意味します。
G2には、スーパーバイザー、マネージャーなどの実際の電子メールアドレスが含まれます。
このプロセスは、各セルに移動してメールアドレスを取得し、メールを1つずつ送信しなくても自動的に実行されます。
このSub
は、条件が適用される選択したセル(列)を読み取り、Trueの場合にテストを実行します。メール、件名、本文を読み取り、メールを送信し、送信後に同じ行にSent
を書き込みます
これはOutlookで動作します
Column 1 Column 2 Column 3 column 4 column 5 column 6
80 email Manager Name Body Text Employee Name Sent or empty
セル(s、c + 2)、セル(s、c + 4)...を列に対応するように変更できます
たとえば、A2が列1の場合、G2(列2)はセル(s、c + 6)になり、データに従って他のセルを移動します
列1のセルを選択する必要があります。サブを続行します
Sub SendReminderMail()
Dim s As Long, c As Long
Dim OutLookApp As Object
Dim OutLookMailItem As Object
Dim strBody As String
Set OutLookApp = CreateObject("Outlook.application")
Set OutLookMailItem = OutLookApp.CreateItem(0)
For Each Cell In Selection
Cell.Select
s = ActiveCell.Row
c = ActiveCell.Column
If Cells(s, c).Value > 80 And Cells(s, c).Value < 90 Then
strBody = Cells(s, c + 3) & " " & Cells(s, c + 4)
Set OutLookMailItem = OutLookApp.CreateItem(0)
With OutLookMailItem
.To = Cells(s, c + 1).Value
.Subject = "Reminder: "
.Body = "Dear " & Cells(s, c + 2).Value & "," & vbCrLf & vbCrLf & strBody
.Display ' or .Send
End With
Cells(s, c + 5) = "Sent"
End If
Next Cell
End Sub