ExcelのVBAを使ってメールを送信する方法:Outlook向けの11ステップ

Excel VBA を使用すると、受信者、件名、メッセージ、およびワークブックの添付ファイルを含む Outlook メールを作成できます。この 11 の手順ガイドでは、 Windows 版の従来の Outlookを使用し、送信前に確認できるようにメッセージを下書きとして開きます。Microsoft は、新しい Outlook では VBA マクロと Outlook オブジェクト モデルがサポートされていないとしているため、この COM ベースの例は新しい Outlook またはブラウザー版 Outlook では動作しません。

作業を開始する前に、作業内容を保存し、クラシック版Outlookがインストールされ、メールアカウントが設定されていることを確認してください。このコードは遅延バインディングを使用しているため、バージョン固有のOutlookライブラリ参照を追加する必要はありません。

Excel VBAを使ってメールを送信する11の手順

1. 従来のOutlookが利用可能であることを確認してください。

Outlook のデスクトップ版を開き、メールボックスからメッセージを送信できることを確認してください。このマクロは、Windows 版の従来の Outlook が必要です。Outlook.com タブ、Web 版 Outlook、および新しい Outlook では、ここで使用されている COM オートメーション オブジェクトは公開されません。Microsoft の従来の Outlook と新しい Outlook の機能比較を参照してください。

Excelワークブックの背後に、従来のOutlookデスクトップウィンドウが開いている。
ステップ1:Windowsデスクトップ版のExcelと従来のOutlookを使用します。

2. ワークブックをマクロ有効ファイルとして保存します。

Excelで、[ファイル] > [名前を付けて保存]を選択し、[Excelマクロ有効ブック(*.xlsm)]を選択します。通常の.xlsxファイルではVBAコードは保存できません。ブックはアクセスしやすく、パスを覚えておける場所に保存してください。

マクロが有効になっている.xlsmワークブックの種類が選択された、Excelの「名前を付けて保存」ダイアログ。
ステップ2:保存時にマクロが有効な.xlsm形式を選択します。

3. Visual Basic Editor を開きます。

Excelデスクトップアプリでワークブックを開いた状態で、Alt+F11キーを押します。プロジェクトエクスプローラーで、ワークブックと同じ名前のプロジェクトを探します。エディターが非表示になっている場合は、Ctrl+Rキーを押してプロジェクトエクスプローラーを表示します。

Excelワークブックプロジェクトと空のコードペインが表示されたVisual Basicエディター。
ステップ3:ワークブックプロジェクトがVisual Basicエディターに表示されます。

4. 標準モジュールを挿入する

Visual Basic Editorで、ワークブックプロジェクトを選択し、[挿入] > [モジュール]を選択して、新しいコードペインを使用します。標準モジュールは、必要に応じて実行するマクロを配置するのに適した場所です。

Visual Basic Editor の挿入メニューで、モジュール コマンドがハイライト表示されている状態。
ステップ4:マクロ用の標準モジュールを挿入します。

5. 下書き作成マクロを追加する

この手順をモジュールに貼り付けてください。この手順は、ワークブックが保存されていることを確認し、添付ファイルのパスを検証し、Outlookメッセージを作成して、送信せずに表示します。

CreateOutlookDraftプロシージャの開始部分を含むVBAモジュール。
ステップ5:新しいモジュールに手順を追加します。
Option Explicit

Sub CreateOutlookDraft()
    Dim olApp As Object
    Dim olMail As Object
    Dim attachmentPath As String

    If Len(ThisWorkbook.Path) = 0 Then
        MsgBox "Save the workbook before creating the email.", vbExclamation
        Exit Sub
    End If

    attachmentPath = ThisWorkbook.FullName
    If Len(Dir$(attachmentPath)) = 0 Then
        MsgBox "Workbook attachment not found: " & attachmentPath, vbExclamation
        Exit Sub
    End If

    On Error Resume Next
    Set olApp = GetObject(, "Outlook.Application")
    If olApp Is Nothing Then
        Set olApp = CreateObject("Outlook.Application")
    End If
    On Error GoTo 0

    If olApp Is Nothing Then
        MsgBox "Classic Outlook could not be opened.", vbExclamation
        Exit Sub
    End If

    Set olMail = olApp.CreateItem(0)
    With olMail
        .To = "recipient@example.com"
        .CC = ""
        .Subject = "Monthly report"
        .Body = "Hi," & vbCrLf & vbCrLf & _
                "Please review the attached monthly report." & _
                vbCrLf & vbCrLf & "Thanks,"
        .Attachments.Add attachmentPath
        .Display
    End With

    Set olMail = Nothing
    Set olApp = Nothing
End Sub

数値引数によって0標準のメールアイテムが作成されます。Microsoft のドキュメントには、Application.CreateItem、Attachments.Add、およびMailItem.Display が記載されています。

6. サンプルメールの詳細を置き換えます

recipient@example.com宛先を変更してください。.CC必要に応じてアドレスを追加し、.Subjectとテキストを編集してください.Body。テキストの値は引用符で囲み、を使用して&行を結合してくださいvbCrLf。この例ではプレーンテキストメッセージを使用しているため、HTML形式は必要ありません。

メールマクロのサンプルとして、宛先と件名フィールドがハイライト表示されたVBAエディタ。
ステップ6:サンプル受信者を置き換えます。同じ手順で件名と本文を編集します。

7. 添付ファイルを選択します

記載されているとおりに記述すると、ThisWorkbook.FullName保存済みのマクロ有効ワークブック自体が添付されます。別のレポートを添付する場合は、その割り当てを完全なファイルパスに置き換えてください(例:)"C:\Reports\MonthlyReport.xlsx"。マクロを実行する前に、ファイルが存在し、アクセスできることを確認してください。このAttachments.Addメソッドは、メッセージをファイルに添付します。

Outlookメッセージを作成する前に、レポート添付ファイルのパスをチェックするVBAコード。
ステップ7:添付ファイルのパスが既存のファイルを指していることを確認します。

8. マクロを保存する

エディターでCtrl+Sを押すか、Excelに戻ってブックを保存してください。.xlsm形式を維持してください。.xlsx形式で保存するとVBAプロジェクトが削除されます。信頼できる場所にファイルを保存し、出所不明のブックでマクロを有効にしないでください。

保存された.xlsmワークブックと保存コントロールを表示するExcelおよびVBAエディターウィンドウ。
ステップ8:.xlsm拡張子を保持したままワークブックを保存します。

9. 手順を実行する

クリックしてF5CreateOutlookDraftキーを押すか、エディターの「実行」コマンドを使用してください。Excelがマクロをブロックする場合は、組織のポリシーに従ってください。Microsoftによると、Officeはインターネットから取得したファイル内のマクロを既定でブロックするため、保護機能を全体的に無効にするのではなく、マクロのセキュリティに関するガイダンスを参照してください。

Visual Basic Editorの実行メニューに、選択したマクロのF5コマンドが表示されている。
ステップ9:Visual Basic Editorからマクロを実行します。

10. 下書きを確認して、自分で送信する

Outlook は、宛先、件名、本文、およびワークブックの添付ファイルが入力されたメッセージを開きます。すべての受信者を確認し、必要に応じて添付ファイルを開きます。下書きを確認してから、 Outlook の送信.Displayボタンをクリックします。このコードは、タイプミスや古いファイルが自動的にメール送信されないように、意図的に ではなくを使用しています.Send。

受信者、件名、およびワークブックの添付ファイルが設定された、レビュー準備完了のOutlookの標準下書き。
ステップ10:Outlookの下書きと添付のワークブックを確認します。
送信ボタンが表示され、下書きが開いたままのOutlookの作成ウィンドウ。
メッセージの詳細を確認してから送信してください。

11. よくある問題を解決する

  • 「ActiveX コンポーネントがオブジェクトを作成できません」または Outlook が利用できません。Windows版のクラシック Outlook がインストールされ、正しく設定されていることを確認してください。新しい Outlook およびブラウザー版 Outlook では、必要な Outlook オブジェクト モデルが提供されていません。
  • マクロは実行されません。ワークブックが.xlsm形式であることを確認し、Excelのセキュリティに関する通知を確認してください。警告を回避するためにすべてのマクロを有効にしないでください。信頼できるファイルと発行元のみを信頼してください。
  • 添付ファイルが見つかりません。まずワークブックを保存するか、別個のレポートのフルパスを修正してください。ファイルが使用できないドライブ上に存在しないことを確認してください。

このワークフローは、従来のOutlookで確認して送信するメッセージを対象としています。繰り返し送信される、または無人で送信されるビジネスメールの場合は、組織が承認した自動化サービスを使用し、受信者、添付ファイル、およびアクセス許可を個別に検証してください。

Excelのセキュリティ警告で、ファイルに対してマクロが無効になっていることが説明されています。
Officeがマクロをブロックする場合は、マイクロソフトのセキュリティに関するガイダンスと組織のポリシーに従ってください。

コメントを残す

Microsoft Wordで画像を移動する方法

Microsoft Wordで画像を移動する方法

Wordで画像をドラッグする方法、テキストの折り返しを選択する方法、段落内に画像を保持する方法、ページ上に画像を固定する方法、そして画像が移動しない場合のトラブルシューティング方法を学びましょう。

Excelにチェックボックスを挿入する方法:2つの簡単な方法

Excelにチェックボックスを挿入する方法:2つの簡単な方法

Excelのセル内ツールを使ってチェックボックスを挿入する方法、数式を使ってチェックされた項目の数を数える方法、古いデスクトップ版でリンクされたフォームコントロールを追加する方法を学びましょう。

Excelで文字を自動入力する方法:AからZ、そしてその先へ

Excelで文字を自動入力する方法:AからZ、そしてその先へ

Excelでフィルハンドル関数、SEQUENCE関数、または再利用可能なカスタムリストを使用して、AからZまでのアルファベット、小文字、またはZを超えるラベルを生成します。

Excelで取り消し線を引く方法:ショートカットと手順

Excelで取り消し線を引く方法:ショートカットと手順

Windows、Mac、Web版Excelで取り消し線を引く方法、セルの一部に書式を設定する方法、値を削除せずに行を削除する方法を学びましょう。

Microsoft Accessとは?そのデータベースツールはどのように機能するのか?

Microsoft Accessとは?そのデータベースツールはどのように機能するのか?

Microsoft Accessは、関連レコードの保存、クエリの作成、データ入力フォームの作成、レポートの生成を行うためのWindowsデータベースアプリケーションです。その仕組みと最適な活用シーンについて解説します。

Word 2010でグリッド線の高さと幅を変更する

Word 2010でグリッド線の高さと幅を変更する

Word 2010でグリッド線の高さと幅を調整する方法、表示される線の頻度を変更する方法、および下地となる水平方向と垂直方向の描画グリッドの間隔を設定する方法を学びましょう。

Office Outlook 2010 のインポートとエクスポート: PST ファイルを使用してデータを移動する

Office Outlook 2010 のインポートとエクスポート: PST ファイルを使用してデータを移動する

Outlook 2010にPSTファイルをインポートする方法、またはメール、連絡先、カレンダー、タスクをエクスポートする方法を学びましょう。正しいメニューに従い、フォルダの欠落や重複を避けてください。

Nucleus Kernelを使用してOutlook PSTファイルのパスワードを復元する

Nucleus Kernelを使用してOutlook PSTファイルのパスワードを復元する

Kernelが提供する最新の手順では、忘れてしまったOutlook PSTファイルのパスワードを復元する方法を解説します。正しいファイルの特定方法、バックアップの作成方法、ツールの制限事項の確認方法などが含まれています。

PowerPointスライドにライブWebページを挿入する方法

PowerPointスライドにライブWebページを挿入する方法

LiveWebアドインを使用すると、WebサイトをPowerPointスライドに配置し、サイズや更新動作を設定し、プレゼンテーション前に互換性を確認できます。

Access 2010データベースをフォームで開く方法

Access 2010データベースをフォームで開く方法

Access 2010データベースアプリケーションを、データ入力フォームに直接開くように設定し、オブジェクトリストを非表示にし、メニューを制限し、共有前に設定を確認します。