【VBA備忘録】受信したメールから添付ファイルを保存する(Outlook編)
Contents
受信したメールから添付ファイルを保存したい…!
私の毎日のルーティーンで受信したメールの添付ファイルをサーバーに保存するものがあります。
1日数十件もあると大変でとにかく面倒くさい…
こんな仕事は早々にパスしたいので、OutlookのVBAに挑戦してみました。
電子帳簿保存法でシステムやソフトを使わない方だとメールに添付されているデータを勝手に保存してくれるのは
結構らくちんじゃないかと思います。
他にもVBAのやり方あり〼
- 【VBA備忘録】初心者脱却~コピペは配列を使え!~
- 【VBA備忘録】もっと爆速!複数の別ブックを開かずに値を取得する(テキスト編)
- 【VBA備忘録】爆速!別ブックを開かずに値を取得する
- 【VBA備忘録】オリジナル関数を作って月の英語表記を数字に変更する
- 【VBA備忘録】給料日が土日祝のとき前日を取得する(会社カレンダー)
- 【VBA備忘録】ListObject(テーブル)で複数列を選択する(Vlookup)
- 【VBA備忘録】リボンにマクロを追加してクイック起動(Outlook編)
- 【VBA備忘録】VBAで特殊記号や禁則文字を入力したい!
- 【VBA備忘録】Matchで日付が使えない
- 【VBA備忘録】受信したメールから添付ファイルを保存する(Outlook編)
前提条件
・添付ファイルを保存したいメールは指定のフォルダ(未処理フォルダ)に入るよう仕分けルールを設定しておく
(今回はメールの件名に共通の文字が入っているのでそこで仕分けれるようにしてあります)
・「未処理フォルダ」の中に「処理済みフォルダがある」
・受信時間を添付ファイル名の前に入れたい(yyyy-mm-dd-hhmmss(添付ファイル名)
未処理フォルダのメールに添付されたファイルを保存するマクロ
Outlook Alt+F11でVBAを開き右クリック→挿入→標準モジュールを作成
以下のプログラムを入力します
各変数に格納された内容
変数名 | 変数種類 | 格納された内容 |
tdy | Date | 日付フォルダを作成するため今日の日付を取得 |
SaveDir | String | ↑日付フォルダを置くアドレス |
path | String | 添付ファイルを保存する場所(任意の場所を指定してください) |
objbox | Object | Outlookの受信トレイ |
objfld | Object | ↑内にある「未処理フォルダ」 |
zumifld | Folder | ↑内にある「処理済みフォルダ」 |
mlitem | Object | メール内容 |
rctime | String | 受信時間(「yyyy-mm-dd-hhmmss」表示) |
temp | String | 添付ファイルを保存するアドレス |
マクロを実行する
開発→マクロから対象のマクロを選択します。
リボンに追加しても簡単に実行できますよ!
ちゃんとマクロが実行しているのか不安な方はEnd Subの前に
を追加しておくと処理が終わったお知らせと、
保存したフォルダが立ち上がるので
ちゃんと保存できているか確認できます。
リボンに追加すればより使いやすい
リボンへの追加方法は↓のページを参考にどうぞ!