web-dev-qa-db-ja.com

Excelは、スプレッドシートの基準に基づいてOutlook経由で電子メールを「送信」できますか?

実際に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つずつ送信しなくても自動的に実行されます。

3
GPinSF

この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
1
yass