メインコンテンツへスキップ

Outlookでメールを開かずに添付ファイルを保存するにはどうすればよいですか?

Author: Siluvia Last Modified: 2025-08-06

受信したメールから添付ファイルをコンピュータのディスクに保存する必要が頻繁にあるかもしれません。1つのメールメッセージから添付ファイルを1つまたはすべて保存するのは簡単ですが、複数のメールから一度に添付ファイルを保存するにはどうすればよいでしょうか?通常、繰り返しメールを開き、添付ファイルを保存する必要があります。この繰り返し操作を回避するためのコツはありますか?このチュートリアルの方法がお手伝いします。

VBAコードを使用して、1つまたは複数のメールから添付ファイルを保存する(メールを開かずに)
驚くべきツールを使用して、1つまたは複数のメールから添付ファイルを保存する(メールを開かずに)


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

以下のVBAコードは、Outlookでメールを開かずに、1つまたは複数のメールから同時に添付ファイルを保存するのに役立ちます。次の手順に従ってください。

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

2. Microsoft Outlook Objectsフォルダを展開し、ThisOutlookSessionをダブルクリックしてコードウィンドウを開き、以下のVBAコードをそこにコピーします。

save attachments with 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ボタンをクリックしてください。

選択されたメール内のすべての添付ファイルがすぐに選択されたフォルダに保存されます。

注意: すべての添付ファイルはメールから切り離され、メール本文に保存パスのリンクが保持されます。

save attachments with VBA 2

驚くべきツールを使用して、1つまたは複数のメールから添付ファイルを保存する(メールを開かずに)

VBA初心者の方には、このセクションの方法が良い選択になるでしょう。

ここでお勧めするのは、 すべての添付ファイルを保存する 機能です。 Kutools for Outlook です。選択したメールから添付ファイルを切り離さずに保存したい場合、すべての添付ファイルを保存する機能が簡単にそれを実現できます。次の手順に従ってください。
Kutools for Outlookを使用する前に、 ダウンロードしてインストールしてください まず最初に。

Kutools for Outlookで究極のメール効率を解き放とう!強力な70の機能を永久に無料で利用できます。今すぐ無料版をダウンロード

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

2. 保存設定ダイアログボックスで、次の操作を行います:

  • 2.1) 「添付ファイルをこのフォルダに保存」セクションで、添付ファイルを保存するフォルダを選択します;
  • 2.2) 「次のスタイルで添付ファイルを保存」ボックスはオプションで、特定のスタイルでサブフォルダを作成して添付ファイルを保存したり、特定のスタイルで保存された添付ファイルの名前を変更することができます。
  • 2.3) OKをクリックして、選択されたメールからのすべての添付ファイルの保存を開始します。

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

  • 詳細オプションボタンをクリックしてフィルター条件を展開します;
  • 必要に応じて条件を指定します。
    ヒント:ここでは、 添付ファイル名 含むボックスをチェックし、「請求書」をテキストボックスに入力してから、 添付ファイルの種類 ボックスをチェックし、テキストボックスに「.pdf」を入力します。
save attachments with kutools 2

3. 次に表示されるダイアログボックスで、続行するには「はい」をクリックします。

選択されたメール内の添付ファイルが即座に指定されたフォルダに保存されます。

ヒント: 選択されたメールから添付ファイルを切り離し、メール本文に添付ファイルのハイパーリンクだけを残すには、 すべての添付ファイルを切り離す機能が役立ちます。


関連記事

Outlookから特定のフォルダに自動的に添付ファイルをダウンロード/保存する
一般的に、Outlookで添付ファイル>すべての添付ファイルを保存をクリックすることで、1つのメールのすべての添付ファイルを保存できます。しかし、すべての受信メールや受信中のメールからすべての添付ファイルを保存する必要がある場合はどうすればよいでしょうか?この記事では、Outlookから特定のフォルダに添付ファイルを自動的にダウンロードするための2つの解決策を紹介します。

Outlookで返信時に添付ファイルを保持する
Microsoft Outlookでメールメッセージを転送すると、そのメールメッセージに含まれていた元の添付ファイルは転送されたメッセージに残ります。しかし、返信するときには、元の添付ファイルは新しい返信メッセージには添付されません。ここでは、Microsoft Outlookで返信時に元の添付ファイルを保持するためのいくつかの方法を紹介します。

Outlookで添付ファイル(内容)内を検索する
Outlookのインスタント検索ボックスにキーワードを入力すると、メールの件名、本文、添付ファイルなどでそのキーワードを検索します。しかし、Outlookで添付ファイルの内容のみを検索したい場合はどうすればよいでしょうか?この記事では、Outlookで添付ファイルの内容内の単語を簡単に検索するための詳細な手順を示します。