KutoolsforOffice— 1 つのソリューション、5 つの強力なツール。少ない労力で大きな成果。

Outlook でメールを開かずに添付ファイルを保存するには?

著者Siluvia変更日

受信メールから添付ファイルをコンピューターのディスクに頻繁に保存しなければならないこともあるでしょう。1 通のメールから特定の添付ファイル、あるいはすべての添付ファイルを保存するのは簡単ですが、複数のメールにある添付ファイルを一度にまとめて保存するにはどうすればよいでしょうか?通常は、メールを一つひとつ開いて添付ファイルを手動で保存する必要がありますが、この繰り返し作業を回避するテクニックはあるのでしょうか?このチュートリアルでご紹介する方法が、きっとお役に立ちます。

VBA コードを使用して、1 通または複数のメールからメールを開かずに添付ファイルを保存する
便利なツールを使用して、1 通または複数のメールからメールを開かずに添付ファイルを保存する


VBA コードを使用して、1 通または複数のメールからメールを開かずに添付ファイルを保存する

次の VBA コードを使えば、Outlook でメールを開くことなく、1 通または複数のメールから添付ファイルを一括で保存できます。以下の手順に従って操作してください。

1.添付ファイルを保存したいメールを1 通または複数選択し、AltF11キーを押して、Microsoft Visual Basic for Applicationsウィンドウを開きます。

2.Microsoft Outlook オブジェクトフォルダーを展開し、ThisOutlookSessionをダブルクリックしてコードウィンドウを開き、以下の VBA コードを貼り付けてください。

VBA で添付ファイルを保存 1

VBA コード:メールを開かずに添付ファイルを保存する

Public Sub SaveAttachmentsWithoutOpening()
'Updated by Extendoffice 20191008
Dim xMailItem As Outlook.MailItem
Dim xAttachments As Outlook.Attachments
Dim xAttachment As Outlook.Attachment
Dim i As Long
Dim xCount As Long
Dim xFileName As String
Dim xSavePath As String
Dim xOriginalFiles As String
On Error Resume Next
Set xShell = CreateObject("Shell.Application")
Set xFolder = xShell.BrowseForFolder(0, "Select a folder:", 0, strStartingFolder)
If Not TypeName(xFolder) = "Nothing" Then
    Set xFolderItem = xFolder.self
    xSavePath = xFolderItem.Path & "\"
Else
    xFileName = ""
    Exit Sub
End If
For Each xMailItem In Outlook.ActiveExplorer.Selection
    Set xAttachments = xMailItem.Attachments
    xCount = xAttachments.Count
    xOriginalFiles = ""
    If xCount > 0 Then
        For i = xCount To 1 Step -1
            Set xAttachment = xAttachments.Item(i)
            If IsEmbeddedAttachment(xAttachment) = False Then
                xFileName = xSavePath & xAttachment.FileName
                xAttachment.SaveAsFile xFileName
                xAttachment.Delete
                If xMailItem.BodyFormat <> olFormatHTML Then
                    xOriginalFiles = xOriginalFiles & vbCrLf & "file://" & xFileName
                Else
                    xOriginalFiles = xOriginalFiles & "<br>" & "<a href='file://" & xFileName & "'>" & xFileName & "</a>"
                End If
            End If
        Next i
        If xMailItem.BodyFormat <> olFormatHTML Then
            xMailItem.Body = "The file(s) were saved to " & xOriginalFiles & vbCrLf & vbCrLf & xMailItem.Body
        Else
            xMailItem.HTMLBody = "<p>" & "The file(s) were saved to " & xOriginalFiles & "</p>" & xMailItem.HTMLBody
        End If
        xMailItem.Save
    End If
Next
Set xAttachments = Nothing
Set xMailItem = Nothing
End Sub

Function IsEmbeddedAttachment(Attach As Attachment)
Dim xItem As MailItem
Dim xCid As String
Dim xID As String
Dim xHtml As String
On Error Resume Next
IsEmbeddedAttachment = False
Set xItem = Attach.Parent
If xItem.BodyFormat <> olFormatHTML Then Exit Function
xCid = ""
xCid = Attach.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x3712001F")
If xCid <> "" Then
    xHtml = xItem.HTMLBody
    xID = "cid:" & xCid
    If InStr(xHtml, xID) > 0 Then
        IsEmbeddedAttachment = True
    End If
End If
End Function

4.F5キーを押してコードを実行すると、BrowseForFolderウィンドウが表示されます。添付ファイルを保存するフォルダーを選択し、OKボタンをクリックしてください。

これにより、選択したメールに含まれるすべての添付ファイルが、即座に指定したフォルダーに保存されます。

注:すべての添付ファイルはメールから分離され、その代わりにメール本文には保存先パスへのリンクが残ります。

VBA で添付ファイルを保存 2

便利なツールを使用して、1 通または複数のメールからメールを開かずに添付ファイルを保存する

VBA 初心者には、このセクションの方法が最適です。

ここでは、すべての添付ファイルを保存するのに、Kutools for Outlookのユーティリティをおすすめします。選択したメールから添付ファイルを分離せずにそのまま保存したい場合は、「すべての添付ファイルを保存」機能が簡単に実現できます。以下の手順に従ってください。
ダウンロードしてインストールしてください。最初に、Kutools for Outlook を適用する前に。

Outlook の非効率さにサヨナラしましょう!Kutools for Outlook なら、メールの一括処理がもっと簡単になります。今なら30 日間の無料トライアル付き!Kutools for Outlook を今すぐダウンロード!

1.添付ファイルを保存したいメールを選択し、KUTOOLS PLUS添付ファイルツールすべて保存をクリックします。

2.保存設定ダイアログボックスで、次の操作を行ってください。

  • 2.1)添付ファイルをこのフォルダに保存するセクションで、添付ファイルの保存先フォルダーを選択してください。
  • 2.2)次のスタイルで添付ファイルを保存するボックスでは、添付ファイルを保存するサブフォルダーを特定のスタイルで作成したり、保存される添付ファイルに特定のスタイルで名前を付けたりするために、任意で使用できます。
  • 2.3) OKをクリックすると、選択したメールに含まれるすべての添付ファイルの保存が開始されます。

ヒント:上記の設定により、すべての添付ファイルが指定されたフォルダーに保存されます。たとえば、「invoice」という特定の単語をファイル名に含む PDF ファイルなど、特定の添付ファイルのみを保存したい場合は、フィルター条件を次のように設定できます。

  • 詳細オプションボタンをクリックすると、フィルター条件が展開されます。
  • ニーズに基づいて条件を指定します。
    ヒント:ここでは、【附件】名の「を含む」チェックボックスにチェックを入れ、テキストボックスに「invoice」と入力します。次に、添付ファイルの種類が次のものと一致するチェックボックスにチェックを入れ、テキストボックスに「。pdf」と入力します。
Kutools で添付ファイルを保存 2

3.次のダイアログボックスが表示されたら、はいをクリックして続行します。

これにより、選択したメールの添付ファイルが指定されたフォルダーに一括保存されます。

ヒント:選択したメールから添付ファイルを分離し、メール本文に添付ファイルへのハイパーリンクだけを残したい場合は、すべての添付ファイルを分離機能が便利です。


関連記事

Outlook の添付ファイルを特定のフォルダーに自動的にダウンロード/保存する
通常、Outlook で「添付ファイル」>「すべての添付ファイルを保存」をクリックすれば、1 通のメールに含まれるすべての添付ファイルを一括保存できます。しかし、受信するすべてのメールから添付ファイルを自動的に保存したい場合はどうすればよいでしょうか?この記事では、Outlook の添付ファイルを指定したフォルダーに自動でダウンロード・保存する2 つの方法をご紹介します。

Outlook で返信時に添付ファイルを保持する
Microsoft Outlook でメールを転送する際、元のメッセージに含まれる添付ファイルはそのまま転送メールに含まれます。しかし、返信する場合は、元の添付ファイルが自動的に新しい返信メッセージに含まれることはありません。ここでは、Microsoft Outlook で返信時にも元の添付ファイルを確実に保持するための便利なテクニックをいくつかご紹介します。

Outlook で添付ファイル内(コンテンツ)から単語を検索する
Outlook のインスタント検索ボックスにキーワードを入力すると、メールの件名や本文、添付ファイルなどからそのキーワードが検索されます。しかし、今必要なのは添付ファイルのコンテンツ内だけを対象にキーワードを検索することです。この記事では、Outlook で添付ファイル内の単語を簡単に検索するための詳細な手順をご紹介します。