当サイトの記事にはプロモーションが含まれています。

Excel VBAでOutlookメールを複数の宛先に自動作成する方法

パソコンパソコン・スマホ教室
スポンサーリンク

皆さん、こんにちは。今日は、ExcelとOutlookを使って、複数の宛先にメールを自動で作成する方法をご紹介します。手作業で一通一通メールを作成するのは大変ですよね。でも、VBAを使えば、この作業を簡単に自動化できます。特に、パソコンやスマホが苦手な方でも大丈夫です。わかりやすく説明しますので、一緒にやってみましょう。

スポンサーリンク

VBAでOutlookメールを作成する基本

Outlookのイメージ

Outlookのイメージ

まず、ExcelのVBAを使ってOutlookのメールを作成する基本的な方法をお伝えします。難しそうに聞こえるかもしれませんが、順を追って説明しますのでご安心ください。

Outlookとの連携設定

最初に、ExcelとOutlookを連携させるための設定を行います。以下の手順で進めてください。

  1. Excelを開き、キーボードの「Alt」キーを押しながら「F11」キーを押して、VBAの編集画面を開きます。
  2. 上部のメニューから「ツール」をクリックし、「参照設定」を選択します。
  3. 表示された一覧の中から「Microsoft Outlook xx.x Object Library」にチェックを入れ、「OK」をクリックします。

これで、ExcelとOutlookが連携できるようになりました。

基本的なメール作成コード

次に、実際にメールを作成するためのコードを書いてみましょう。以下のコードを先ほどのVBA編集画面に入力してください。

vba
Sub CreateMail()
' Outlookアプリケーションを起動
Dim objOutlook As New Outlook.Application
' 新しいメールアイテムを作成
Dim objMail As Outlook.MailItem
Set objMail = objOutlook.CreateItem(olMailItem)

' メールの設定
With objMail
.To = "example1@example.com; example2@example.com" ' 宛先
.CC = "cc@example.com" ' CC
.BCC = "bcc@example.com" ' BCC
.Subject = "メールの件名" ' 件名
.Body = "ここにメールの本文を書きます。" ' 本文
.Display ' メールを表示
End With
End Sub

このコードを実行すると、指定した宛先にメールが作成され、画面に表示されます。送信する前に内容を確認できるので安心ですね。

複数の宛先にメールを一括作成する方法

次に、Excelのシートにリスト化した複数の宛先に対して、一括でメールを作成する方法をご紹介します。これにより、たくさんの人に同じ内容のメールを送る際に非常に便利です。

宛先リストの作成

まず、Excelのシートに以下のような形で宛先リストを作成します。


A列(メールアドレス) B列(件名) C列(本文)
example1@example.com 件名1 本文1
example2@example.com 件名2 本文2

このように、A列にメールアドレス、B列に件名、C列に本文を入力します。

メール一括作成のコード

次に、先ほどのVBA編集画面に以下のコードを入力します。

vba
Sub CreateBulkMails()
' Outlookアプリケーションを起動
Dim objOutlook As New Outlook.Application
' 変数の宣言
Dim objMail As Outlook.MailItem
Dim ws As Worksheet
Dim lastRow As Long
Dim i As Long

' アクティブなシートを設定
Set ws = ThisWorkbook.ActiveSheet
' 最終行を取得
lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row

' 2行目から最終行までループ
For i = 2 To lastRow
' 新しいメールアイテムを作成
Set objMail = objOutlook.CreateItem(olMailItem)
With objMail
.To = ws.Cells(i, 1).Value ' A列宛先
.Subject = ws.Cells(i, 2).Value ' B列件名
.Body = ws.Cells(i, 3).Value ' C列本文
.Display ' メールを表示
End With
Next i
End Sub

このコードを実行すると、リストにある各宛先ごとにメールが作成され、画面に表示されます。内容を確認してから送信できるので、誤送信の心配もありません。

よくある質問や疑問

Q1: メールを直接送信することはできますか?

はい、可能です。コード内の `.Display` を `.Send` に変更することで、メールを直接送信できます。ただし、内容を確認せずに送信されるため、誤送信には十分注意してください。

Q2: CCやBCCにも複数のアドレスを指定できますか?

はい、できます。宛先と同様に、アドレスをセミコロン(;)で区切って指定してください。例えば、 `.CC = “cc1@example.com; cc2@example.com”` のように記述します。

まとめ

いかがでしたか?ExcelのVBAを使って、Outlookで複数の宛先にメールを自動作成する方法をご紹介しました。最初は少し難しく感じるかもしれませんが、慣れてくるととても便利です。ぜひ試してみてください。他にも疑問やお悩み事があればお気軽にLINEからお声掛けください。

この記事を書いた人
この記事を書いた人

企業の情報システム部門で10年以上、PC・アカウント・社内ネットワーク・Microsoft 365/Google Workspace運用を担当。年間数百件の問い合わせ対応(PC不調、メール送受信、Excel/Word資料、Teams会議、スマホ連携など)を通じて、初心者がつまずくポイントを「再現→原因切り分け→最短解決」の手順に落とし込んできました

現場や身近で実際に起きたトラブルをベースに、手順だけでなく「なぜそうなるか」「失敗しやすい落とし穴」「安全な設定(セキュリティ)」まで含めて解説します。

相談窓口(問い合わせ/LINE等)を設け、記事で解決しないケースも個別にサポートしていますので「パソコンが急に動かなくなった」「スマホの設定がわからない」などの悩みは一人で抱え込まず、お気軽にご相談ください。

【お問い合わせは下記URLから】
https://m32006400n.xsrv.jp/inquiry-form/

【公式LINEは下記URLから】
https://lin.ee/t8TDjcj

uri uriをフォローする
スポンサーリンク
よかったらシェアしてね! /
uri uriをフォローする

コメント

タイトルとURLをコピーしました