この記事では、Excel VBAを利用して社員向けのイベント通知メールを自動で送信する方法について詳しく解説します。具体的なコードの実装例から、その詳細な解説、さらには応用例まで、一通りの手法を身につけることができます。
目次
基本の実装: 社員向けイベント通知メールの送信
Sub SendEventNotification()
Dim OutlookApp As Object
Dim Mail As Object
Dim LastRow As Long
Dim i As Long
' Outlook アプリケーションの起動
Set OutlookApp = CreateObject("Outlook.Application")
' 社員の情報が入っている最後の行を取得
LastRow = ThisWorkbook.Sheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To LastRow
Set Mail = OutlookApp.CreateItem(0)
With Mail
.To = ThisWorkbook.Sheets("Sheet1").Cells(i, 2).Value
.Subject = "【重要】社員向けイベントのお知らせ"
.Body = ThisWorkbook.Sheets("Sheet1").Cells(i, 3).Value
.Send
End With
Next i
Set Mail = Nothing
Set OutlookApp = Nothing
End Sub
コードの詳細解説
– **OutlookApp**: Outlookのアプリケーションを操作するための変数を宣言します。
– **Mail**: メールの新しいアイテムを作成するための変数を宣言します。
– **LastRow**: 社員の情報が入っているシートの最後の行番号を取得します。
– **Outlookアプリケーションの起動**: CreateObject関数を使用してOutlookを起動します。
– **Forループ**: シート内の各社員情報に対してメールを送信します。
– **.To**: メールの宛先を指定します。ここでは、シートの2列目(メールアドレス)を使用しています。
– **.Subject**: メールの件名を設定します。
– **.Body**: メールの本文を設定します。シートの3列目(メールの内容)を使用しています。
– **.Send**: メールを送信します。
応用例
1. イベントの日付をメールの本文に追加する
.Body = "次回の社員向けイベントは " & ThisWorkbook.Sheets("Sheet1").Cells(i, 4).Value & " に開催されます。" & vbNewLine & ThisWorkbook.Sheets("Sheet1").Cells(i, 3).Value
2. 送信者名を追加する
.SentOnBehalfOfName = "event@yourcompany.com"
3. 送信前に確認メッセージボックスを表示する
If MsgBox("メールを送信してもよろしいですか?", vbYesNo + vbQuestion, "確認") = vbYes Then
.Send
End If
まとめ
Excel VBAを活用することで、社員向けのイベント通知メールの自動送信が可能になります。基本のコードを理解した上で、必要に応じて応用例を取り入れることで、より実用的な機能を追加することができます。
コメント