ソフトウェア
 Computer >> コンピューター >  >> ソフトウェア >> ソフトウェア

Outlookの添付ファイルを一括ダウンロードする方法【Windows・Mac・VBA対応】

毎日大量のメールを受け取る環境で働いている方なら、複数の添付ファイルが付いたメールを扱う機会も多いはずです。件数が多い場合、手作業でひとつずつ添付ファイルを保存するのは非常に時間がかかります。幸い、Microsoft Outlookには複数の添付ファイルをまとめて保存できる便利な機能が備わっています。

この記事では、Outlookから添付ファイルを一括ダウンロードするさまざまな方法を、状況別にわかりやすく解説します。

Windows版Outlookで添付ファイルを一括ダウンロードする方法

Windows用のMicrosoft Outlookアプリで、すべての添付ファイルを一度に保存するには、以下の手順に従ってください。

  1. Outlookを起動し、自分のアカウントにサインインします。
  2. 添付ファイルが含まれているメールを開きます。
  3. 添付ファイルのいずれかを右クリックし、表示されたメニューから「すべての添付ファイルを保存」を選択します。1つのファイルだけを保存したい場合は「名前を付けて保存」を選びましょう。
Outlookの添付ファイルを一括ダウンロードする方法【Windows・Mac・VBA対応】
  1. ダイアログボックスが表示されたら、キーボードのCtrlキーを押しながら、ダウンロードしたい添付ファイルをすべて選択し、「OK」をクリックします。
Outlookの添付ファイルを一括ダウンロードする方法【Windows・Mac・VBA対応】
  1. ファイルの保存先フォルダーを指定して、「OK」ボタンを押せば完了です。

Mac版Outlookで添付ファイルを一括ダウンロードする方法

Mac用Outlookの場合は、さらにシンプルな操作で一括保存が可能です。

  1. Microsoft Outlookアプリケーションを開きます。
  2. 添付ファイルが含まれるメールを選択します。
  3. 「添付ファイル」をクリックし、「すべてダウンロード」を選択します。
Outlookの添付ファイルを一括ダウンロードする方法【Windows・Mac・VBA対応】
  1. 保存先のフォルダーを指定して、「選択」をクリックします。

複数のメールから添付ファイルをまとめてダウンロードする方法

実は、複数のメールに散らばった添付ファイルを一度に抽出することも可能です。主な方法を2つ紹介します。

方法1:VBAマクロを使う

Outlook 2019 / 2016 / 2013 / 2010 / 2007 / 2003をお使いの場合、VBAエディターを使えば、選択した複数のメールから添付ファイルを自動的に保存できます。

  1. ドキュメントフォルダーを開き、「Attachments」という名前の新規フォルダーを作成します。ここに添付ファイルが保存されます。
  2. Microsoft Outlookを起動します。
  3. キーボードのAlt + F11キーを同時に押して、VBAエディターを開きます。
  4. 左側の「Project1」配下にある「Microsoft Outlook Objects」を右クリックし、「挿入」→「標準モジュール」を選択します。
Outlookの添付ファイルを一括ダウンロードする方法【Windows・Mac・VBA対応】
  1. 以下のコードをコピーしてエディターに貼り付け、Enterキーを押します。
Dim GCount As Integer
Dim GFilepath As String

Public Sub SaveAttachments()
    'Update 20200821
    Dim xMailItem As Outlook.MailItem
    Dim xAttachments As Outlook.Attachments
    Dim xSelection As Outlook.Selection
    Dim i As Long
    Dim xAttCount As Long
    Dim xFilePath As String, xFolderPath As String, xSaveFiles As String
    On Error Resume Next
    xFolderPath = CreateObject("WScript.Shell").SpecialFolders(16)
    Set xSelection = Outlook.Application.ActiveExplorer.Selection
    xFolderPath = xFolderPath & "\Attachments\"
    If VBA.Dir(xFolderPath, vbDirectory) = vbNullString Then
        VBA.MkDir xFolderPath
    End If
    GFilepath = ""
    For Each xMailItem In xSelection
        Set xAttachments = xMailItem.Attachments
        xAttCount = xAttachments.Count
        xSaveFiles = ""
        If xAttCount > 0 Then
            For i = xAttCount To 1 Step -1
                GCount = 0
                xFilePath = xFolderPath & xAttachments.Item(i).FileName
                GFilepath = xFilePath
                xFilePath = FileRename(xFilePath)
                If IsEmbeddedAttachment(xAttachments.Item(i)) = False Then
                    xAttachments.Item(i).SaveAsFile xFilePath
                    If xMailItem.BodyFormat <> olFormatHTML Then
                        xSaveFiles = xSaveFiles & vbCrLf & "<Error! Hyperlink reference not valid.>"
                    Else
                        xSaveFiles = xSaveFiles & "<br>" & "<a href='file://" & xFilePath & "'>" & xFilePath & "</a>"
                    End If
                End If
            Next i
        End If
    Next
    Set xAttachments = Nothing
    Set xMailItem = Nothing
    Set xSelection = Nothing
End Sub

Function FileRename(FilePath As String) As String
    Dim xPath As String
    Dim xFso As FileSystemObject
    On Error Resume Next
    Set xFso = CreateObject("Scripting.FileSystemObject")
    xPath = FilePath
    FileRename = xPath
    If xFso.FileExists(xPath) Then
        GCount = GCount + 1
        xPath = xFso.GetParentFolderName(GFilepath) & "\" & xFso.GetBaseName(GFilepath) & " " & GCount & "." + xFso.GetExtensionName(GFilepath)
        FileRename = FileRename(xPath)
    End If
    xFso = Nothing
End Function

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("https://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

※このコードはExtend Officeで公開されているものです。そのままコピーしてエディターに貼り付けてください。

Outlookの添付ファイルを一括ダウンロードする方法【Windows・Mac・VBA対応】
  1. F5キーを押してスクリプトを実行します。操作の許可を求めるポップアップが表示された場合は、許可してください。

なお、マクロを実行する前に、あらかじめ対象となる複数のメールをOutlookのメール一覧で選択しておく必要があります。

方法2:外部ツールを使う

古いバージョン以外のOutlookを使用している場合、PST以外の形式から抽出したい場合、あるいはVBAの操作が難しく感じる場合は、専用ツールの利用がおすすめです。

「Outlook Attachment Extractor」などのアプリなら、PSTファイルだけでなく、OST、BAK、MSG、OLK、OLMといった各種形式からも添付ファイルを一括保存できます。さらに、ファイルサイズ・日付・送信者などの条件で添付ファイルを絞り込むフィルター機能も備えており、必要なファイルだけを効率的に取り出せます。

破損したファイルから添付ファイルを復元する方法

Outlookで添付ファイルを開けない・表示できない・保存できない場合は、Outlookのデータファイル(PST)が破損している可能性があります。その際は、Microsoft純正の修復ツール「SCANPST.exe」を使ってPSTファイルを修復することで、添付ファイルを取り戻せる場合があります。

まずOutlookを終了し、お使いのOutlookのバージョンに応じて以下の場所へ移動してください。

  • Outlook 2019:C:\Program Files (x86)\Microsoft Office\root\Office16
  • Outlook 2016:C:\Program Files (x86)\Microsoft Office\root\Office16
  • Outlook 2013:C:\Program Files (x86)\Microsoft Office\Office15
  • Outlook 2010:C:\Program Files (x86)\Microsoft Office\Office14
  • Outlook 2007:C:\Program Files (x86)\Microsoft Office\Office12

次に、「SCANPST.EXE」をダブルクリックして起動します。

Outlookの添付ファイルを一括ダウンロードする方法【Windows・Mac・VBA対応】

「参照」をクリックしてスキャン対象のOutlookデータファイルを選択し、「開始」を押します。

Outlookの添付ファイルを一括ダウンロードする方法【Windows・Mac・VBA対応】

エラーが検出された場合は「修復」を選択して修正を試みます。処理が完了したらOutlookを再起動し、添付ファイルが正常に開けるかどうかを確認しましょう。

まとめ:メール業務を効率化しよう

Outlookからの添付ファイルの一括ダウンロードはとても簡単で、工夫すれば複数のメールにまたがるファイルもまとめて取得できます。標準機能では物足りないと感じたら、「Outlook Attachment Extractor」のような専用ツールを活用するのも良い選択肢です。日々のメール業務にかかる時間を大幅に削減し、より生産的な仕事に時間を使えるようにしましょう。

  1. Windows 10 PCでYouTubeのカクつき・動画ラグを解消する4つの対処法

    YouTubeは、インターネット上でも有数のエンターテインメント&学習プラットフォームです。ほぼすべてのジャンルの動画を視聴でき、他の人々の経験や知識を自分のスキルアップに活かせます。ただし、それを最大限に楽しむには、動画をストレスなく快適に再生できることが大前提です。本記事では、Windows 10 PCで発生するYouTubeのカクつき(コマ落ち)や動画の遅延・ラグを解消するための具体的な方法をわかりやすく解説します。 Windows 10 PCでYouTubeのカクつきを解消する4つの方法 YouTubeの動画カクつき問題を解消するために実行できる主な方法は、次の4つです。 方法1:ブラ

  2. イーサネットケーブルスプリッター完全解説:仕組み・メリット・デメリットとおすすめ製品

    イーサネットケーブルスプリッターは、1本の物理的なケーブルで2つの独立したイーサネット信号を伝送できる機器です。実質的に1本のケーブルを2本として使えるため、1本のケーブルで接続できる機器の数を2倍に増やせる便利なソリューションとなります。ただし、イーサネットケーブルスプリッターにはデメリットも存在します。その仕組みを理解し、自分のニーズに合った解決策なのかを見極めることが重要です。イーサネットケーブルスプリッターの仕組みイーサネットケーブルスプリッターは、片側に2つのイーサネットポート、もう片側に1つのイーサネットポートを備えています。現在、家庭やオフィスで一般的に使われているCAT 5Eケ