この記事では、Excel VBAを用いて社員への評価フィードバックメールを自動で送信する処理の方法について詳しく解説します。VBAのコードを実際に書き、その詳細な解説や応用例を通して、メール送信の自動化を効率的に行う方法を学びます。
目次
基本的な評価フィードバックメールの送信処理
Sub SendFeedbackEmail()
Dim OutApp As Object
Dim OutMail As Object
Dim rng As Range
Dim cell As Range
' Outlook Applicationの起動
Set OutApp = CreateObject("Outlook.Application")
' Excelのシートを指定
Set rng = ThisWorkbook.Sheets("Sheet1").Range("A1:A10")
' 各セルごとに処理
For Each cell In rng
' Outlook Mailの設定
Set OutMail = OutApp.CreateItem(0)
With OutMail
.To = cell.Value
.Subject = "評価フィードバック"
.Body = "こちらは評価フィードバックメールです。" & vbCrLf & "評価内容をご確認ください。"
.Send
End With
Next cell
Set OutMail = Nothing
Set OutApp = Nothing
End Sub
コードの詳細解説
– 最初にOutlook Applicationのオブジェクトを生成します。
– ExcelのSheet1のA列のアドレスを変数rngにセットしています。このA列にはメールアドレスが記入されているものとします。
– For Each文で、A列の各セルのメールアドレスを読み取り、Outlookでメールを作成して送信します。
– メールの宛先、件名、本文などは.OutMail内で指定しています。
応用例1:評価スコアを本文に含める
Sub SendFeedbackWithScore()
Dim OutApp As Object
Dim OutMail As Object
Dim rng As Range
Dim cell As Range
' Outlook Applicationの起動
Set OutApp = CreateObject("Outlook.Application")
' Excelのシートを指定
Set rng = ThisWorkbook.Sheets("Sheet1").Range("A1:A10")
' 各セルごとに処理
For Each cell In rng
' Outlook Mailの設定
Set OutMail = OutApp.CreateItem(0)
With OutMail
.To = cell.Value
.Subject = "評価フィードバック"
.Body = "あなたの評価スコアは " & cell.Offset(0, 1).Value & " です。" & vbCrLf & "評価内容をご確認ください。"
.Send
End With
Next cell
Set OutMail = Nothing
Set OutApp = Nothing
End Sub
解説
– 前の例と同じく、Outlook Applicationのオブジェクトを生成します。
– ExcelのSheet1のA列のアドレスとB列のスコアを読み取ります。
– A列にはメールアドレス、B列にはスコアが入力されているものとします。
応用例2:評価カテゴリ別にメールを送る
'(中略)
' Excelのシートを指定
Set rng = ThisWorkbook.Sheets("Sheet1").Range("A1:A10")
' 各セルごとに処理
For Each cell In rng
' Outlook Mailの設定
Set OutMail = OutApp.CreateItem(0)
With OutMail
.To = cell.Value
.Subject = "評価フィードバック - " & cell.Offset(0, 2).Value
.Body = "あなたの評価スコアは " & cell.Offset(0, 1).Value & " です。" & vbCrLf & "評価内容をご確認ください。"
.Send
End With
Next cell
'(中略)
解説
– A列にはメールアドレス、B列にはスコア、C列には評価カテゴリが入力されているものとします。
応用例3:複数の評価フィードバックを一度に送る
'(中略)
' Excelのシートを指定
Set rng = ThisWorkbook.Sheets("Sheet1").Range("A1:A10")
' 各セルごとに処理
For Each cell In rng
' Outlook Mailの設定
Set OutMail = OutApp.CreateItem(0)
With OutMail
.To = cell.Value
.Subject = "評価フィードバック - " & cell.Offset(0, 2).Value
.Body = "あなたの評価スコアは " & cell.Offset(0, 1).Value & " です。" & vbCrLf & _
"また、" & cell.Offset(0, 3).Value & " カテゴリでのスコアは " & cell.Offset(0, 4).Value & " です。" & vbCrLf & _
"詳細な評価内容をご確認ください。"
.Send
End With
Next cell
'(中略)
解説
– A列にはメールアドレス、B列にはスコア、C列には評価
カテゴリ1、D列には評価カテゴリ2、E列にはスコア2が入力されているものとします。
まとめ
Excel VBAを活用することで、社員の評価フィードバックメールを簡単に自動送信することが可能です。基本的なコードから応用的な例まで、さまざまなシチュエーションに合わせてカスタマイズして使用することができます。
コメント