📊 Excel VBA Top100

SendEmailWithAttachment

自動化

Outlookを使って現在のブックを添付ファイルとしてメール送信します

🎬 デモGIF準備中

📖 使い方

  1. VBAエディタを開く(Alt + F11)
  2. モジュールを挿入(挿入 > モジュール)
  3. 下記VBAコードをコピー&ペースト
  4. ブック上で実行(Alt + F8 でマクロ選択)
💡 実行例: SendEmailWithAttachment を実行し、宛先・件名を入力します(Outlook必須)

💻 VBAコード

' SendEmailWithAttachment
' -----------------
' Macro Name: SendEmailWithAttachment
' Description: Outlookを使って現在のブックを添付ファイルとしてメール送信します
' Parameters: なし
' Returns: なし
' Usage: SendEmailWithAttachment を実行し、宛先・件名を入力します(Outlook必須)
' -----------------

Sub SendEmailWithAttachment()
    On Error GoTo ErrorHandler

    Dim wb As Workbook
    Dim outlookApp As Object
    Dim mailItem As Object
    Dim toAddress As String
    Dim subject As String

    Set wb = ActiveWorkbook

    If wb.Path = "" Then
        MsgBox "先にブックを保存してください", vbExclamation, "注意"
        Exit Sub
    End If

    toAddress = InputBox("宛先メールアドレスを入力してください", "宛先")
    If toAddress = "" Then Exit Sub

    subject = InputBox("件名を入力してください", "件名", wb.Name & " を送付します")
    If subject = "" Then Exit Sub

    Set outlookApp = CreateObject("Outlook.Application")
    Set mailItem = outlookApp.CreateItem(0)

    With mailItem
        .To = toAddress
        .Subject = subject
        .Body = "お世話になっております。" & vbCrLf & "ファイルを添付いたします。"
        .Attachments.Add wb.FullName
        .Display
    End With

    MsgBox "メール作成画面を表示しました。内容を確認して送信してください。", vbInformation, "完了"

    Exit Sub

ErrorHandler:
    MsgBox "エラーが発生しました:" & vbCrLf & Err.Description & vbCrLf & _
        "(Outlookがインストールされていない場合は使用できません)", vbCritical, "エラー"
End Sub