こんな人にオススメの記事です
- 受信したメールの添付ファイルを自動ですべて保存したい人
- OutlookでVBAを使ってみたい人
- Outlookを使った業務の効率化を検討している人
この記事では、マクロを使ってOutlookで受信したメールの添付ファイルを自動的に所定のフォルダー内に保存する方法を初心者にもわかりやすく、丁寧に解説していきます。
Outlookのマクロを使う事前準備その1 すべてのマクロを有効にする
まずはOutlookで自作したマクロの実行を許可するように設定していきます。
Outlookを起動し、左上にある[ファイル]をクリックしてください。
[ファイル]をクリックすると「アカウント情報」と大きく書かれた画面に移動します。
その中の[オプション]をクリックしてください。
[オプション]をクリックすると「Outlookのオプション」と書かれたウィンドウが立ち上がります。
そのウィンドウの左側にある[トラストセンター]をクリックしてください。
[トラストセンター]をクリックすると「セキュリティと詳細情報」を書かれた画面に移動します。
その中にある[トラストセンターの設定]と書かれたボタンをクリックしてください。
[トラストセンターの設定]と書かれたボタンをクリックすると「トラストセンター」が立ち上がります。
その画面の左側メニューにある[マクロの設定]をクリックしてください。
[マクロの設定]をクリックすると「マクロの設定」と書かれた画面に移動します。
その中にある[すべてのマクロを有効にする]にチェックを入れてください。
次に右下にある[OK]をクリックしてください。
「マクロの設定」と書かれた画面で[OK]をクリックすると、「Outlookのオプション」ウィンドウに戻ります。
再度右下にある[OK]をクリックして、「Outlookのオプション」ウィンドウを閉じてください。
これでOutlookで自作のマクロを実行することができるようになります。
Outlookのマクロを使う事前準備その2 リボンに開発タブを表示する
Outlookで自作のマクロの実行を許可した後は、Outlookのリボンに開発タブを表示させます。
Outlookの「リボン」とは以下の赤枠で囲った箇所を指します。
リボン(英: ribbon)とは、マイクロソフトが提唱した、アプリケーションソフトウェアの操作コマンドメニューの表示領域におけるグラフィカルユーザーインターフェイス (GUI) 方式の一種である。Microsoft Office 2007で初めて搭載された。
Wikipedia https://ja.wikipedia.org/wiki/%E3%83%AA%E3%83%9C%E3%83%B3_(GUI)
Outlookのリボンに開発タブを表示させることで、マクロの管理が簡単になります。
Outlookを起動し、左上にある[ファイル]をクリックしてください。
[ファイル]をクリックすると「アカウント情報」と大きく書かれた画面に移動します。
その中の[オプション]をクリックしてください。
[オプション]をクリックすると「Outlookのオプション」と書かれたウィンドウが立ち上がります。
そのウィンドウの左側にある[リボンのユーザー設定]をクリックしてください。
[リボンのユーザー設定]をクリックすると「リボンをカスタマイズします。」と書かれた画面に移動します。
右側の枠の中にある[開発]にチェックを入れて、右下の[OK]をクリックしてください。
受信したメールの添付ファイルを自動保存するためのマクロ
すべてのマクロを有効にし、Outlookのリボンに[開発]タブが表示されたら次は実際にマクロを作成していきましょう。
Option Explicit
Private Sub Application_NewMailEx(ByVal EntryIDCollection As String)
Dim folderPath As String
Dim entryIDs As Variant
Dim recTime As String
Dim attachFileName As String
Dim i As Long
Dim objMsg As Object
Dim objAttach As Attachment
folderPath = "C:\Users\Downloads\" '添付ファイルを保存するフォルダパスを指定、最後に\を付けること
entryIDs = Split(EntryIDCollection, ",") '複数のメールを同時受信した際は、複数のIDがカンマ区切りで渡されるため、カンマ区切りでIDを配列に格納
For i = 0 To UBound(entryIDs)
Set objMsg = Application.Session.GetItemFromID(entryIDs(i)) '受信したメールを取得
recTime = Format(objMsg.ReceivedTime, "yyyymmdd-hhmm_") '受信日時を取得してタイトル用に文字列に変換
For Each objAttach In objMsg.Attachments '受信メールに添付されたファイル毎に処理
attachFileName = folderPath & recTime & objAttach.FileName 'フォルダパスを付けて添付ファイル名を用意
objAttach.SaveAsFile attachFileName '添付ファイルを保存
Next
Next i
Set objMsg = Nothing
End Sub
上記がVBAのコードです。
14行目のfolderPath = "C:\Users\Downloads\"で保存先を指定しているので、そこを指定のフォルダーに書き換えてください。(必須)
フォルダーのフルパスを確認するには以下の手順で行います。
- 指定したいフォルダーを右クリック
- [プロパティ]をクリック
- [セキュリティ]タブをクリック
[セキュリティ]タブのオブジェクト名に書かれているのがフルパスです。
受信した日付毎にフォルダーを作成し、その中に受信したメールの添付ファイルを自動保存するためのマクロ
受信したメールの添付ファイルを自動保存するためのマクロの応用編で、指定したフォルダーの中に日付毎のサブフォルダーを自動で作成し、その中に添付ファイルを保存していくものです。
Private Sub Application_NewMailEx(ByVal EntryIDCollection As String)
Dim folderPath As String
Dim entryIDs As Variant
Dim recTime As String
Dim attachFileName As String
Dim i As Long
Dim objMsg As Object
Dim objAttach As Attachment
folderPath = "C:\Users\Downloads\" '添付ファイルを保存する親フォルダパスを指定、最後に\を付けること
entryIDs = Split(EntryIDCollection, ",") '複数のメールを同時受信した際は、複数のIDがカンマ区切りで渡されるため、カンマ区切りでIDを配列に格納
For i = 0 To UBound(entryIDs)
Set objMsg = Application.Session.GetItemFromID(entryIDs(i)) '受信したメールを取得
recTime = Format(objMsg.ReceivedTime, "yyyymmdd-hhmm_") '受信日時を取得してタイトル用に文字列に変換
subfolder = Format(objMsg.ReceivedTime, "yyyymmdd") '受信日時yyyymmddでサブフォルダ名を用意
frag = Dir(folderPath & subfolder, vbDirectory) 'Dir関数で親フォルダの中にサブフォルダの有無を確認
If frag = "" Then '親フォルダの中にサブフォルダがない場合(すでにサブフォルダがある場合は何もしない)
MkDir folderPath & subfolder 'サブフォルダを作成
End If
For Each objAttach In objMsg.Attachments '受信メールに添付されたファイル毎に処理
attachFileName = folderPath & subfolder & "\" & recTime & objAttach.Filename 'フォルダパスを付けて添付ファイル名を用意
'attachFileName = folderPath & subfolder & "\" & objMsg.SenderName & "_" & objMsg.Subject & "_" & recTime & objAttach.Filename '「メールのタイトル+送信者名+受信日時+添付ファイル名」の場合
objAttach.SaveAsFile attachFileName '添付ファイルを保存
Next
Next i
Set objMsg = Nothing
End Sub
上記がVBAのコードです。
12行目のfolderPath = "C:\Users\Downloads\"で保存先を指定しているので、そこを指定のフォルダーに書き換えてください。(必須)
受信したメールの添付ファイルを自動保存するためのマクロをOutlookに保存
マクロを作成できたら、以下の手順でマクロをOutlookに保存します。
[開発]タブを開いたら一番左にある[Visual Basic]をクリックしてください。
[Visual Basic]をクリックすると、上記のような画面が表示されます。
左上の枠の中にある[ThisOutlookSession]をクリックしてください。
[ThisOutlookSession]の中に受信したメールの添付ファイルを自動保存するためのマクロを貼り付けてください。
貼り付け終えたら左上にある[上書き保存]をクリックしてください。
上書き保存ができたら右上の✕をクリックしてマクロの画面を閉じてください。
受信したメールの添付ファイルを自動保存するためのマクロを動かしてみる
このマクロを動かすのは非常に簡単です。
Outlookで送受信し、添付ファイルがあるメールを受信したら自動で添付ファイルを指定したフォルダーに保存してくれます。
例えば、20221124-情シスの自由帳.pdf
という添付ファイルがあるメールをOutlookで受信した場合、指定したフォルダー内に20221125-1113_20221124-情シスの自由帳.pdf
というファイルが保存されます。
その他Outlookに関する記事
その他Outlookに関する記事はこちらです。ぜひご覧ください。
-
アウトルック(Microsoft Outlook)
【Outlook】送信するメールのフォントや文字の色を変更する方法をわかりやすく解説
こんな人にオススメの記事です Outlookから送信するメールのフォントや文字の色を変更したい人 メールを見栄え良く作成したい人 Outlookには送信するメールのフォントや... -
アウトルック(Microsoft Outlook)
添付されているwinmail.datの開き方6選
こんな方にオススメ winmail.datが添付されたメールが来て困っている方 winmail.datが何なのかわからない方 winmail.datの開き方を知りたい方 winmail.datを変換したい... -
アウトルック(Microsoft Outlook)
【Outlook】カレンダーで祝日を表示させる方法
こんな人にオススメの記事です Outlookのカレンダー(予定表)に日本の祝日を追加したい人 Outlookのカレンダー(予定表)に日本以外の祝日を追加したい人 複数のパソコ... -
アウトルック(Microsoft Outlook)
【Outlook】メール本文内の画像を一括で保存する方法
こんな人にオススメの記事です メール本文内に埋め込まれた画像をまとめて保存したい人 GmailなどのHTML形式に対応しているメールソフトから送られてきたメールに画像が... -
アウトルック(Microsoft Outlook)
OutlookからWinmail.datを送らないための設定方法 Outlook2019
こんな人にオススメの記事です 取引先などから添付ファイルが無いと苦情を受けることが多い方 OutlookからWinmail.datを送りたくない方 メール送信先がOutlook以外のソ... -
アウトルック(Microsoft Outlook)
【Outlook】メール受信通知のポップアップが表示されない場合の対処法
こんな人にオススメの記事です Outlookでメールを受信したのにデスクトップに通知が表示されなくて困っている人 特定のメールを受信したときだけ通知がデスクトップに表... -
アウトルック(Microsoft Outlook)
Outlookにパスワードを設定する方法
こんな方にオススメ Outlookのメールを他人に見られたくない Outlookにパスワードを設定したい Outlookに設定されているパスワードを解除したい この記事では、Outlook... -
アウトルック(Microsoft Outlook)
【Outlook】指定したアドレスを常にCCに自動で追加する方法
こんな人にオススメの記事です Outlookから送信するメールに必ずCCで特定のメールアドレスを追加したい人 OutlookでCCを毎回選択するのが面倒な人 OutlookでCCを指定す... -
アウトルック(Microsoft Outlook)
Outlookでフォルダー内のメール件数を表示する方法
こんな人にオススメの記事です フォルダー内に何件のメールが保存されているか見たい人 Outlookをもっと便利に使いたい人 通常、フォルダー名の右側には新着(未開封)...
最後までご覧いただきありがとうございました。
このサイトは情シスマンが半径3m以内のITに関する情報を掲載してるサイトです。
Windows系を主として、ソフトや周辺機器の操作や設定について画像も用いながらわかりやすく解説しています。
解説している内容に誤りがあった場合や、補足が必要な場合、もっと知りたい場合はこちらのお問い合わせフォームからご連絡ください。
個人の方を限定にサポートさせていただきます。
実行環境
Windows11 Home 22H2
64 ビット オペレーティング システム
Microsoft 365