【エクセルVBA】エクセルVBAでOutlookを操作しよう!参照設定とOutlookアプリケーションオブジェクトの取得


vba,outlook,eyacatch

皆様こんにちは、ノグチです。

お仕事をしていると、色々な方にお知らせのメールを一斉送信する場面ってありますよね。

展示会のお知らせ、就活生への情報提供メール、新年のご挨拶や、業務担当者変更のお知らせ等々…

GmailやMicrosoft Outlook、Windows Live Mailなど便利なメーラーは沢山あれど、複数の送信先へ、メール本文の中の宛名も変えつつ一斉送信したいとなると、その機能が標準機能としてついているメーラーはなかなかありません。

更に、会社で使用するメーラーが指定されているために、他のメーラーには搭載されている機能が使えなかったり、一斉送信のスクリプトが使えなかったり…

「会社指定のメーラーはOutlookだけど、Gmailだったらスクリプト組めば、メールの本文を変えつつメール一斉送信できるのに…!」と歯ぎしりした方も世の中にはいらっしゃるのではないでしょうか。

でも、もしOutlookをお使いでしたら、一斉送信その他の操作がエクセルVBAからできるかもしれません。

ということで今回は、エクセルVBAからOutlookを操作する第一歩として、Microsoft Outlook Object Libraryの参照設定と、エクセルVBAでOutlookアプリケーションオブジェクトを取得する方法をご紹介していきます!

スポンサーリンク

VBEでOutlook XX.X Object Libraryの参照設定をする

まず、エクセルVBAでOutlookを操作する準備として、VBEでMicrosoft Outlook Object Libraryの参照設定をしましょう。

VBEの画面を開いて、メニューから「ツール」>「参照設定」を選択していきます。

VBE,参照設定,メニュー

すると参照設定の画面が開くので、Microsoft Outlook XX.X Object Libraryにチェックを入れます。

(筆者の環境ではMicrosoft Outlook 16.0 Object Libraryとなっていますが、この数字の部分はお使いのPCによって異なるかもしれません。)

VBE,参照設定,Outlook

あとは「OK」ボタンをクリックすれば、参照設定完了です。

Outlookアプリケーションオブジェクトを取得する

参照設定ができたら、次はエクセルVBAからOutlookを操作できるように、Outlookアプリケーションオブジェクトを取得しましょう。

まずは、Outlookアプリケーションオブジェクト変数の宣言をします。

Dim オブジェクト名 As Outlook.Application

そして、宣言したオブジェクト型変数で、Outlookアプリケーションオブジェクトを取得しましょう。

記述はこちら。

Set オブジェクト名 = New Outlook.Application

実際のコードはこんな感じになります。

Dim objOutlook As Outlook.Application
Set objOutlook = New Outlook.Application

これで、エクセルVBAでOutlookを操作することができるようになります。

参照設定が使えない場合

Microsoft Outlook XX.X Object Libraryの参照設定が使えない場合は、Object型の変数と、CreateObject関数を使って記述することもできます。

Dim objOutlook As Object
Set objOutlook = CreateObject("Outlook.Application")

ただ、以前の記事でもお伝えした通り、参照設定を使用するとコーディングの時にクイックヒントが出てきてくれるので、記述が楽なのと、スペルミスをすることがありません。

参照設定を使わなくてもコーディングはできますが、余程の理由がない限りは参照設定を使う方が、個人的にはオススメです。

Outlookがインストールされていないとお話にならない

ここまでエクセルVBAからOutlookを操作する準備とアクセス方法をご紹介していますが、この方法でOutlookを操作するには前提条件があります。

当たり前ですがPC内にOutlookがインストールされていること

そもそも操作したいアプリケーションがPCにインストールされていないことにはお話になりませんので、OutlookがPC内にあることが大前提です。

最後に

今回はOutlookを操作するための準備として、Microsoft Outlook Object Libraryの参照設定と、エクセルVBAでOutlookアプリケーションオブジェクトを取得する方法をご紹介しました。

エクセルにリストアップした連絡先にメールを一気に送りたい場合や、連絡先によってメール本文を変えたい!といった場合に、エクセルVBAからOutlookのメールを操作することができれば、なかなか便利ですよね。

次回からは、エクセルVBAからMicrosoft Outlookでメールを作成して送信する方法をご紹介していきます。

それでは、最後までお読みいただきありがとうございました!

連載目次:エクセルVBAでOutlookを操作してみよう!

エクセルVBAでOutlookのメール作成、送信などの操作をする方法をご紹介しています。メーラーとして便利なOutlookですが、VBAと組み合わせて更に便利に使ってしまいましょう。

  1. 【エクセルVBA】エクセルVBAでOutlookを操作しよう!参照設定とOutlookアプリケーションオブジェクトの取得
  2. 【エクセルVBA】Outlookでメールを作成・送信する方法
  3. 【エクセルVBA】エクセルシートに一覧化された複数の連絡先に本文を変えつつOutlookでメールを一括送信する方法
  4. エクセルVBAでOutlookメールの下書きを作成・表示して送信前に内容チェックする
  5. エクセルVBAでOutlookの連絡先を登録する方法
  6. 【エクセルVBA】GetNamespaceメソッドでOutlookのデータフォルダにアクセスする方法
  7. エクセルVBAでOutlookの受信メールフォルダとサブフォルダ名を書き出す方法
  8. エクセルVBAでOutlookの受信メールをワークシートに書き出す方法

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