Outlookで添付ファイルを自動保存するVBAマクロの作成方法

パソコンパソコン・スマホ教室
スポンサーリンク

皆さん、毎日たくさんのメールを受け取って、その中の添付ファイルを一つ一つ手作業で保存するのは大変ですよね。特にパソコンやスマホがあまり得意でない方にとっては、時間もかかるし、面倒に感じることも多いと思います。そこで今回は、Outlookで受信したメールの添付ファイルを自動で保存してくれる便利なVBAマクロの作り方をご紹介します。これを使えば、作業がぐっと楽になりますよ。

スポンサーリンク

VBAマクロとは?

Outlookのイメージ

Outlookのイメージ

まず、「VBAマクロって何?」という方もいらっしゃるかもしれません。簡単に言うと、VBA(Visual Basic for Applications)は、MicrosoftのOffice製品に組み込まれているプログラミング言語です。これを使って、Outlookの操作を自動化する小さなプログラム(マクロ)を作成できます。難しそうに聞こえるかもしれませんが、手順に沿って進めれば大丈夫です。

OutlookでVBAマクロを使う準備

まずは、OutlookでVBAマクロを使うための準備をしましょう。

  1. Outlookを開きます。
  2. キーボードの「Alt」キーを押しながら「F11」キーを押して、VBAエディタを起動します。
  3. 左側の「Project1(VbaProject.OTM)」と書かれた部分の「ThisOutlookSession」をダブルクリックします。

これで、マクロを入力する画面が表示されます。

添付ファイルを自動保存するマクロの作成

次に、実際にマクロを作成していきます。以下の手順で進めてください。

  1. 先ほど表示された「ThisOutlookSession」の画面に、以下のコードをコピーして貼り付けます。
vba
Private Sub Application_NewMailEx(ByVal EntryIDCollection As String)
Dim objItem As Object
Dim objMail As MailItem
Dim objAttachment As Attachment
Dim saveFolder As String
Dim entryID As Variant

' 保存先フォルダのパスを指定します。例えば、"C:\Users\あなたのユーザー名\Documents\OutlookAttachments\"など
saveFolder = "C:\Users\あなたのユーザー名\Documents\OutlookAttachments\"

' EntryIDCollectionを分割して、各メールを処理します
For Each entryID In Split(EntryIDCollection, ",")
Set objItem = Application.Session.GetItemFromID(entryID)
If TypeName(objItem) = "MailItem" Then
Set objMail = objItem

' 添付ファイルがある場合
If objMail.Attachments.Count > 0 Then
For Each objAttachment In objMail.Attachments
' 添付ファイルを指定したフォルダに保存
objAttachment.SaveAsFile saveFolder & objAttachment.FileName
Next objAttachment
End If
End If
Next entryID
End Sub

  1. 上記のコード内の`saveFolder`の部分を、実際にファイルを保存したいフォルダのパスに変更します。例えば、デスクトップに保存したい場合は、`”C:\Users\あなたのユーザー名\Desktop\OutlookAttachments\”`のように指定します。
  2. コードを貼り付けたら、VBAエディタを閉じます。
  3. Outlookを再起動します。

これで、Outlookで新しいメールを受信した際に、添付ファイルが自動的に指定したフォルダに保存されるようになります。

注意点

セキュリティの警告初めてマクロを実行する際、セキュリティの警告が表示されることがあります。その場合は、マクロを有効にする設定を行ってください。
保存先フォルダの存在指定した保存先フォルダが存在しない場合、エラーが発生します。事前にフォルダを作成しておいてください。
ファイル名の重複同じ名前のファイルが存在する場合、上書きされてしまいます。必要に応じて、ファイル名に日付や時刻を追加するなどの工夫をしてください。

よくある質問や疑問

Q1. マクロがうまく動作しません。どうすればいいですか?

まず、Outlookのマクロ設定が有効になっているか確認してください。設定が無効の場合、マクロは動作しません。また、コード内の保存先フォルダのパスが正しいか、フォルダが存在するかも確認してください。

Q2. 特定の送信者からのメールだけ、添付ファイルを保存することはできますか?

はい、可能です。コード内に条件を追加することで、特定の送信者からのメールに限定できます。例えば、以下のように条件を追加します。

vba
If objMail.SenderEmailAddress = "example@example.com" Then
' 添付ファイルを保存する処理
End If

今すぐ解決したい!どうしたらいい?

LINE公式

いま、あなたを悩ませているITの問題を解決します!
「エラーメッセージ、フリーズ、接続不良…もうイライラしない!」

あなたはこんな経験はありませんか?

✅ ExcelやWordの使い方がわからない💦
✅ 仕事の締め切り直前にパソコンがフリーズ💦
✅ 家族との大切な写真が突然見られなくなった💦
✅ オンライン会議に参加できずに焦った💦
✅ スマホの重くて重要な連絡ができなかった💦

平均的な人は、こうしたパソコンやスマホ関連の問題で年間73時間(約9日分の働く時間!)を無駄にしています。あなたの大切な時間が今この悩んでいる瞬間も失われています。

LINEでメッセージを送れば即時解決!

すでに多くの方が私の公式LINEからお悩みを解決しています。

最新のAIを使った自動応答機能を活用していますので、24時間いつでも即返信いたします。

誰でも無料で使えますので、安心して使えます。

問題は先のばしにするほど深刻化します。

小さなエラーがデータ消失重大なシステム障害につながることも。解決できずに大切な機会を逃すリスクは、あなたが思う以上に高いのです。

あなたが今困っていて、すぐにでも解決したいのであれば下のボタンをクリックして、LINEからあなたのお困りごとを送って下さい。

相談しに行く

ぜひ、あなたの悩みを私に解決させてください。

まとめ

いかがでしたか?OutlookのVBAマクロを使って、受信したメールの添付ファイルを自動で保存する方法をご紹介しました。最初は少し難しく感じるかもしれませんが、一度設定してしまえば、毎日の作業がとても楽になります。ぜひ試してみてください。他にも疑問やお悩み事があればお気軽にLINEからお声掛けください。

コメント

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