当サイトの記事にはプロモーションが含まれています。

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あなたのユーザー名DocumentsOutlookAttachments"など
saveFolder = "C:Usersあなたのユーザー名DocumentsOutlookAttachments"

' 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あなたのユーザー名DesktopOutlookAttachments”`のように指定します。
  2. コードを貼り付けたら、VBAエディタを閉じます。
  3. Outlookを再起動します。

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

注意点

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

よくある質問や疑問

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

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

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

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

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

まとめ

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

この記事を書いた人
この記事を書いた人

企業の情報システム部門で10年以上、PC・アカウント・社内ネットワーク・Microsoft 365/Google Workspace運用を担当。年間数百件の問い合わせ対応(PC不調、メール送受信、Excel/Word資料、Teams会議、スマホ連携など)を通じて、初心者がつまずくポイントを「再現→原因切り分け→最短解決」の手順に落とし込んできました

現場や身近で実際に起きたトラブルをベースに、手順だけでなく「なぜそうなるか」「失敗しやすい落とし穴」「安全な設定(セキュリティ)」まで含めて解説します。

相談窓口(問い合わせ/LINE等)を設け、記事で解決しないケースも個別にサポートしていますので「パソコンが急に動かなくなった」「スマホの設定がわからない」などの悩みは一人で抱え込まず、お気軽にご相談ください。

【お問い合わせは下記URLから】
https://m32006400n.xsrv.jp/inquiry-form/

【公式LINEは下記URLから】
https://lin.ee/t8TDjcj

uri uriをフォローする
スポンサーリンク
よかったらシェアしてね! /
uri uriをフォローする

コメント

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