皆さん、毎日たくさんのメールを受け取って、その中の添付ファイルを一つ一つ手作業で保存するのは大変ですよね。特にパソコンやスマホがあまり得意でない方にとっては、時間もかかるし、面倒に感じることも多いと思います。そこで今回は、Outlookで受信したメールの添付ファイルを自動で保存してくれる便利なVBAマクロの作り方をご紹介します。これを使えば、作業がぐっと楽になりますよ。
VBAマクロとは?
まず、「VBAマクロって何?」という方もいらっしゃるかもしれません。簡単に言うと、VBA(Visual Basic for Applications)は、MicrosoftのOffice製品に組み込まれているプログラミング言語です。これを使って、Outlookの操作を自動化する小さなプログラム(マクロ)を作成できます。難しそうに聞こえるかもしれませんが、手順に沿って進めれば大丈夫です。
OutlookでVBAマクロを使う準備
まずは、OutlookでVBAマクロを使うための準備をしましょう。
- Outlookを開きます。
- キーボードの「Alt」キーを押しながら「F11」キーを押して、VBAエディタを起動します。
- 左側の「Project1(VbaProject.OTM)」と書かれた部分の「ThisOutlookSession」をダブルクリックします。
これで、マクロを入力する画面が表示されます。
添付ファイルを自動保存するマクロの作成
次に、実際にマクロを作成していきます。以下の手順で進めてください。
- 先ほど表示された「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
- 上記のコード内の`saveFolder`の部分を、実際にファイルを保存したいフォルダのパスに変更します。例えば、デスクトップに保存したい場合は、`”C:\Users\あなたのユーザー名\Desktop\OutlookAttachments\”`のように指定します。
- コードを貼り付けたら、VBAエディタを閉じます。
- Outlookを再起動します。
コメント