1. VBAマクロの作成手順
1.1 必要な準備
- Excelファイルに業務終了時刻と実績を入力するシートを作成します。
- 例えば、シート名を「業務報告」とし、以下のようにセルを構成します:
- A1セル: 「業務終了時刻」
- A2セル: 「実績内容」
- B1セル: 業務終了時刻を入力
- B2セル: 実績内容を入力
1.2 VBAマクロのコード
- Excel VBAエディターを開く
- Excel上で
Alt + F11を押してVBAエディターを開きます。
- 新しいモジュールを挿入
挿入メニューから標準モジュールを選択します。
- VBAコードを記述
- 以下のコードを新しいモジュールに貼り付けます。
Sub SendReportEmail()
' 変数の宣言
Dim OutlookApp As Object
Dim MailItem As Object
Dim ws As Worksheet
Dim EndTime As String
Dim Achievement As String
Dim Recipient As String
Dim Subject As String
Dim Body As String
' シートの設定
Set ws = ThisWorkbook.Sheets("業務報告")
' 終了時刻と実績の取得
EndTime = ws.Range("B1").Value
Achievement = ws.Range("B2").Value
' 上司のメールアドレスを設定(ここに上司のメールアドレスを入力)
Recipient = "boss@example.com"
' メールの件名と本文を設定
Subject = "業務終了報告: " & Format(Date, "yyyy/mm/dd")
Body = "お疲れ様です。" & vbCrLf & vbCrLf & _
"本日の業務が終了しましたので、以下の通り報告いたします。" & vbCrLf & vbCrLf & _
"【業務終了時刻】: " & EndTime & vbCrLf & _
"【実績内容】: " & Achievement & vbCrLf & vbCrLf & _
"ご確認のほどよろしくお願いいたします。" & vbCrLf & _
"--------------------------------------------------" & vbCrLf & _
"このメールは自動送信されました。"
' Outlookアプリケーションを起動
Set OutlookApp = CreateObject("Outlook.Application")
' 新しいメールアイテムを作成
Set MailItem = OutlookApp.CreateItem(0)
' メールアイテムのプロパティを設定
With MailItem
.To = Recipient
.Subject = Subject
.Body = Body
.Send ' メールを送信(確認したい場合は .Display に変更してプレビュー表示)
End With
' メモリ解放
Set MailItem = Nothing
Set OutlookApp = Nothing
MsgBox "業務終了報告メールを送信しました。", vbInformation
End Sub
2. プログラムの動作
- このプログラムを実行すると、指定されたシート(「業務報告」シート)の内容を基に、Outlookを使用して上司にメールを送信します。
Recipient変数に上司のメールアドレスを設定してください。- メールの件名や本文は、必要に応じてカスタマイズできます。
.Sendメソッドによりメールが直接送信されますが、プレビューを確認したい場合は、.Sendを.Displayに変更することでメールのプレビューを表示できます。
3. 自動実行の設定(任意)
- Excelを閉じる際や特定の時間に自動で実行したい場合は、
ThisWorkbookのWorkbook_BeforeCloseイベントに上記のSendReportEmailサブルーチンを呼び出すコードを追加します。
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Call SendReportEmail
End Sub
これにより、Excelファイルを閉じる際に自動的に業務報告メールが送信されるようになります。