【Outlook VBA】今開いているメールのAttachmentsコレクションを取得する方法


 

 

outlook,vba,Attachments,eyecatch
みなさまこんにちは、ノグチです。

何度かの連載で、Outlook VBAでOutlookでウインドウで開いているメールの添付ファイルを、ワンクリックで任意のフォルダに格納する方法をご紹介しています。

【Outlook VBA】今開いているOutlookウインドウを操作しよう!Inspectorオブジェクトの取得
Outlook vbaで、メールの添付ファイルをワンクリックで指定フォルダに保存する方法を複数回記事にわたってご紹介していきます。今回は、ActiveInspectionメソッドで、今開いているOutlookウインドウのInspectorオブジェクトを取得する方法をご紹介しています。
【Outlook VBA】CurrentItemプロパティで今開いているメールのMailItemオブジェクトを取得する方法
Outlook VBAで、今開いているメールの添付ファイルをワンクリックで任意のフォルダに保存する方法を5ステップにわけて、連載記事でご紹介しています。今回は、InspectorオブジェクトのCurrentItemプロパティによるMailItemオブジェクトの取得についての説明です。

前回の記事では、InspectorオブジェクトのCurrentItemプロパティで、今開いているウインドウをOutlookのItemオブジェクトとして取得する方法をご紹介しました。

今回の記事では、前回取得したOutlookアイテムオブジェクトのMailItemオブジェクトから、Attachmentsコレクションを取得する方法をご紹介していきます。

前回までのおさらい

Outlook VBAでOutlookでウインドウで開いているメールの添付ファイルを、ワンクリックで任意のフォルダに格納するためには、VBAで以下のステップを経ることになります。

  1. 今開いているOutlookのウインドウのInspectorオブジェクトを取得
  2. 取得できたInspectorオブジェクトからMailitemオブジェクトを取得
  3. 取得できたMailItemオブジェクトからAttachmentsコレクションを取得
  4. Attachmentsコレクションから添付ファイルのAttachmentオブジェクトを取得
  5. AttachmentオブジェクトのSaveAsFileメソッドで、添付ファイルを任意フォルダに保存

前回までの記事では、このステップ2の取得できたInspectorオブジェクトからMailitemオブジェクトを取得までをご紹介しました。

そしてこのステップ2まででできたコードがこちらです。

Outlookで開いているアイテムウインドウのInspectorオブジェクトをActiveInspectorメソッドで取得し、MailitemオブジェクトをCurrentItemプロパティで取得するまでが上記コードです。

今回も、記事の内容を上のコードに追加していきましょう!

Attachmentsコレクションを取得

さて、前回記事でMailItemオブジェクトが取得できました。

そうするとお次は、

3.取得できたMailItemオブジェクトからAttachmentsコレクションを取得

のステップです。

Attachmentsコレクションとは

添付ファイルを操作するためにまず取得するのが、Attachmentsコレクション

Attachmentsコレクションは、添付ファイルそのもののオブジェクトではなく、Outlookアイテムの添付ファイルがまとまったものです。

1つ1つの添付ファイルが入っている、大きな箱を想像していただくとわかりやすいかもしれません。

このオブジェクトは、MailItemオブジェクトのAttachmentsプロパティで取得することができます。

MailItemオブジェクト.Attachments

Attachmentsコレクションを取得するコード

MailItemオブジェクトのAttachmentsプロパティでAttachmentsコレクション取得を上のコードに追加すると、こうなります。

 

MailItemの取得とAttachmentsコレクションの取得を1行にまとめて記述することもできます。

こんな感じ。

 

これで、Attachmentsコレクションを取得することができました。

Attachmentsコレクション ≠ 添付ファイルのオブジェクト

「添付ファイルのオブジェクトを取得できたなら、もう添付ファイルの操作ができるんじゃないの?」と思いますよね。

先にお伝えした通り、このAttachmentsコレクションは、添付ファイルそのものではなく、1つ1つの添付ファイルが入った大きな箱のようなものです。

添付ファイルを保存したり削除したりといった操作をするためには、この箱の中に入った添付ファイル1つ1つをオブジェクトとして取り出して、取り出した一つ一つの添付ファイルに対して操作をしていかねばなりません。

その方法は、次回の記事でご紹介していきますね。

最後に

今回は、Outlookのウインドウで開いているメールのAttachmentsコレクションを取得する方法をご紹介しました。

ここまでくれば、ゴールはもう目前です。

次回記事では、ステップ4のAttachmentsコレクションから添付ファイルのAttachmentオブジェクトを取得する方法からご紹介していきます

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

連載目次:はじめてのOutlook VBA

Outlook VBAで、予定やタスクの登録方法など、Outlookを操作する方法をご紹介しています。メーラーやスケジューラとして便利なOutlookですが、VBAで更に便利なツールにしてしまいましょう!

  1. 【はじめてのOutlook VBA】Outlookの予定を登録する方法
  2. 【Outlook VBA】エクセルワークシートの内容で予定登録する方法
  3. 【Outlook VBA】今開いているOutlookウインドウを操作しよう!Inspectorオブジェクトの取得
  4. 【Outlook VBA】CurrentItemプロパティで今開いているメールのMailItemオブジェクトを取得する方法
  5. 【Outlook VBA】今開いているメールのAttachmentsコレクションを取得する方法

 

  投稿者プロフィール

ノグチフリーランスPG・SE
元製造子会社SE。
業務システム保守・導入両方やった経験をお伝えすることで、少しでもシステムや手作業に悩まされる人が減ればいいなぁと日々夢見ております。

コメント