AI活用術

エクセルVBA 上司へ半自動的にメール送信する方法

1. VBAマクロの作成手順

1.1 必要な準備

  • Excelファイルに業務終了時刻と実績を入力するシートを作成します。
  • 例えば、シート名を「業務報告」とし、以下のようにセルを構成します:
  • A1セル: 「業務終了時刻」
  • A2セル: 「実績内容」
  • B1セル: 業務終了時刻を入力
  • B2セル: 実績内容を入力

1.2 VBAマクロのコード

  1. Excel VBAエディターを開く
  • Excel上で Alt + F11 を押してVBAエディターを開きます。
  1. 新しいモジュールを挿入
  • 挿入 メニューから 標準モジュール を選択します。
  1. 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を閉じる際や特定の時間に自動で実行したい場合は、ThisWorkbookWorkbook_BeforeClose イベントに上記の SendReportEmail サブルーチンを呼び出すコードを追加します。
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Call SendReportEmail
End Sub

これにより、Excelファイルを閉じる際に自動的に業務報告メールが送信されるようになります。

-AI活用術

GooDeveLuckをもっと見る

今すぐ購読し、続きを読んで、すべてのアーカイブにアクセスしましょう。

続きを読む