フィールディングEyeNECフィールディングがお届けする百花繚乱のコラム集

はじめてのOutlook

2021年01月20日

第4回Outlookと検索結果Excel VBAを連携させて、宛先だけ変更したメール作成・自動送信をする方法

Outlookと検索結果Excel VBAを連携

複数の相手に対して同一内容のメールをメールソフトのOutlookで一斉送信するとき、メールの内容は同じでも宛名だけは変えて送信したいという場合があります。その際、大量のメールを宛名だけ変えて一通一通送信していては大変な手間がかかってしまいます。

このようなメール作成・送信の手間を効率化できる、OutlookとExcel VBAの連携方法を紹介いたします。

OutlookとExcel VBAの連携とは?

Excelでは、手動で行っているさまざまな定型業務を自動化できる「Excel VBA」というプログラミング言語を使うことができます。

このExcel VBAは、さまざまなExcelの機能を拡張し手作業を自動化してくれます。しかし、Excel VBAで自動化できるのはExcelの作業だけではありません。Excelの住所録をメールソフトであるOutlookと連携すれば、メール作成・送信も自動化できるようになります。

Outlook とExcel VBAを連携すると、メール作成・送信が自動化できる

Excel VBAを利用してExcelの住所録とOutlookを連携すれば、本文の一部だけ変更した大量のメールの作成・送信が自動化できます。複数かつ大量のメール作成・送信を自動化できるようになれば、業務を大幅に効率化できるようになるでしょう。

Excel VBAでOutlookを操作するには?

Excel VBAでOutlookのメールを操作するプログラミングをする前に、準備しておくことがあります。

■Outlookの参照設定を行う

Excelの初期設定では、「開発」というタブが表示されていませんので、これを表示させるようにします。

表示方法は、Excelの一番左にあるタブ「ファイル」を選択します。すると新しい画面が開きますので、最下部にある「オプション」を選択します。

「Excelのオプション」ダイアログが表示されますので、左側にあるメニューの「リボンのユーザー設定」を選択します。次に、「メインタブ」で「開発」にチェックを入れ「OK」ボタンをクリックすれば、Excel画面の上部に「開発」タブが表示されるようになります。
「開発」タブを選択すると表示されるメニューにある左側の「Visual Basic」をクリックします。
すると別画面が表示されますので、「ツール」タブ→「参照設定」を選択します。そうすると「参照設定」画面が表示されますので、「Microsoft Outlook XX.X Object Library」にチェックを入れます。
「XX.X」の部分は、バージョンにより「15.0」や「16.0」と表示されます。

■Excel VBAからOutlookを操作できるようにする

Outlookには、メールだけでなく予定表や連絡先、タスクといった機能もありますので、「Dim (オブジェクト名) As Outlook.Application」と指定してメールだけを指定した以下のようなオブジェクトを作らないといけません。具体的には、「Dim objOutlook As Outlook.Application」と記述して、Outlookアプリケーションオブジェクト変数の宣言をします。

そして、このオブジェクト変数で、「Set (オブジェクト名) = New Outlook.Application」とOutlookアプリケーションオブジェクトを取得します。具体的な記述は「Set objOutlook = New Outlook.Application」となります。

Excel VBAに以下のように記述することで、Outlookを操作できるようになります。
Dim objOutlook As Outlook.Application
Set objOutlook = New Outlook.Application

■Windows 10 にOutlookがインストールされている

Excel VBAとOutlookを連携する方法を紹介してきましたが、Windows 10にOutlookがインストールされアカウント設定されていないと連携はできません。

Windows 10にはデフォルトでOutlookがインストールされています。しかし使わないからといってアンインストールしていないかどうか、今一度、確認しておきましょう。

まとめ

仕事をしていると、複数相手への大量の同一文メールを宛名だけを変えて送信するような場面は多くあります。それを一通一通、メール送信していくとなると、大きな手間がかかります。

かといって、宛名を変えずに「お客様各位」などと記載して「Bcc」で一斉メールとして送信してしまうと、単なるお知らせメールだと思われ読まれない恐れもあります。

Excel VBAを活用すれば、Outlookで一括してメールの送信が可能となります。

コラム「フィールディングEye」へ戻る