Outlookで複数のフォルダ/サブフォルダからメールをExcelにエクスポートするにはどうすればよいですか?
複数のフォルダやサブフォルダからメールをExcelにエクスポートすることは、手動での操作やOutlookの限られた機能に依存している場合、面倒な作業になることがあります。幸いなことに、これを行うためのより効率的な方法が存在します。この記事では、VBAベースのアプローチと、Kutools for Outlookを使用した高速で使いやすいソリューションという2つの方法を探ります。VBAの方法は柔軟性がありますが、セットアップや調整が複雑です。一方で、Kutools for Outlookは、数回のクリックだけでメールをExcelにエクスポートでき、時間と労力を節約できます。詳細を見ていきましょう。
VBAを使用して複数のフォルダ/サブフォルダからメールをExcelにエクスポート (複雑だが柔軟)
Kutools for Outlookを使用してフォルダ/サブフォルダからメールをExcelにエクスポート 👍(効率的で使いやすい)
VBAを使用して複数のフォルダ/サブフォルダからメールをExcelにエクスポート
コードに慣れていてカスタマイズ可能なソリューションが必要な場合、VBAを使用すると効果的です。この方法では、複数のフォルダやサブフォルダを指定し、それらのメールを個別のExcelファイルにエクスポートできます。ただし、技術的な知識が必要で、コードを慎重にカスタマイズする必要があります。
ステップ1: VBAエディタを開く
Alt + F11を押して「Microsoft Visual Basic for Applications」ウィンドウを起動します。
ステップ2: 新しいモジュールを挿入
「挿入」>「モジュール」をクリックし、以下のVBAコードを新しいモジュールウィンドウに貼り付けます。
VBA: 複数のフォルダおよびサブフォルダからメールをExcelにエクスポート
Const MACRO_NAME = "Export Outlook Folders to Excel"
Sub ExportMain()
ExportToExcel "destination_folder_path\A.xlsx", "your_email_account\folder\subfolder_1"
ExportToExcel "destination_folder_path\B.xlsx", "your_email_account\folder\subfolder_2"
MsgBox "Process complete.", vbInformation + vbOKOnly, MACRO_NAME
End Sub
Sub ExportToExcel(strFilename As String, strFolderPath As String)
Dim olkMsg As Object
Dim olkFld As Object
Dim excApp As Object
Dim excWkb As Object
Dim excWks As Object
Dim intRow As Integer
Dim intVersion As Integer
If strFilename <> "" Then
If strFolderPath <> "" Then
Set olkFld = OpenOutlookFolder(strFolderPath)
If TypeName(olkFld) <> "Nothing" Then
intVersion = GetOutlookVersion()
Set excApp = CreateObject("Excel.Application")
Set excWkb = excApp.Workbooks.Add()
Set excWks = excWkb.ActiveSheet
With excWks
.Cells(1, 1) = "Subject"
.Cells(1, 2) = "Received"
.Cells(1, 3) = "Sender"
End With
intRow = 2
For Each olkMsg In olkFld.Items
If olkMsg.Class = olMail Then
excWks.Cells(intRow, 1) = olkMsg.Subject
excWks.Cells(intRow, 2) = olkMsg.ReceivedTime
excWks.Cells(intRow, 3) = GetSMTPAddress(olkMsg, intVersion)
intRow = intRow + 1
End If
Next
Set olkMsg = Nothing
excWkb.SaveAs strFilename
excWkb.Close
Else
MsgBox "The folder '" & strFolderPath & "' does not exist in Outlook.", vbCritical + vbOKOnly, MACRO_NAME
End If
Else
MsgBox "The folder path was empty.", vbCritical + vbOKOnly, MACRO_NAME
End If
Else
MsgBox "The filename was empty.", vbCritical + vbOKOnly, MACRO_NAME
End If
Set olkMsg = Nothing
Set olkFld = Nothing
Set excWks = Nothing
Set excWkb = Nothing
Set excApp = Nothing
End Sub
Public Function OpenOutlookFolder(strFolderPath As String) As Outlook.MAPIFolder
Dim arrFolders As Variant
Dim varFolder As Variant
Dim bolBeyondRoot As Boolean
On Error Resume Next
If strFolderPath = "" Then
Set OpenOutlookFolder = Nothing
Else
Do While Left(strFolderPath, 1) = "\"
strFolderPath = Right(strFolderPath, Len(strFolderPath) - 1)
Loop
arrFolders = Split(strFolderPath, "\")
For Each varFolder In arrFolders
Select Case bolBeyondRoot
Case False
Set OpenOutlookFolder = Outlook.Session.Folders(varFolder)
bolBeyondRoot = True
Case True
Set OpenOutlookFolder = OpenOutlookFolder.Folders(varFolder)
End Select
If Err.Number <> 0 Then
Set OpenOutlookFolder = Nothing
Exit For
End If
Next
End If
On Error GoTo 0
End Function
Function GetSMTPAddress(Item As Outlook.MailItem, intOutlookVersion As Integer) As String
Dim olkSnd As Outlook.AddressEntry
Dim olkEnt As Object
On Error Resume Next
Select Case intOutlookVersion
Case Is < 14
If Item.SenderEmailType = "EX" Then
GetSMTPAddress = SMTPEX(Item)
Else
GetSMTPAddress = Item.SenderEmailAddress
End If
Case Else
Set olkSnd = Item.Sender
If olkSnd.AddressEntryUserType = olExchangeUserAddressEntry Then
Set olkEnt = olkSnd.GetExchangeUser
GetSMTPAddress = olkEnt.PrimarySmtpAddress
Else
GetSMTPAddress = Item.SenderEmailAddress
End If
End Select
On Error GoTo 0
Set olkSnd = Nothing
Set olkEnt = Nothing
End Function
Function GetOutlookVersion() As Integer
Dim arrVer As Variant
arrVer = Split(Outlook.Version, ".")
GetOutlookVersion = arrVer(0)
End Function
Function SMTPEX(olkMsg As Outlook.MailItem) As String
Dim olkPA As Outlook.propertyAccessor
On Error Resume Next
Set olkPA = olkMsg.propertyAccessor
SMTPEX = olkPA.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x5D01001E")
On Error GoTo 0
Set olkPA = Nothing
End Function
ステップ3: VBAコードのカスタマイズ
- 上記のコード内の「destination_folder_path」を実際のフォルダパス(例: 「C:\Users\DT168\Documents\TEST」)に置き換えます。
- 置換:your_email_account\folder\subfolder_1“ および “your_email_account\folder\subfolder_2“ をあなたのOutlookフォルダパス(例: “Kelly@extendoffice.com\受信トレイ\A“ および “Kelly@extendoffice.com\受信トレイ\B".
ステップ4: コードを実行
「F5」を押すか、「実行」ボタンをクリックしてコードを実行します。次に、「OutlookフォルダをExcelにエクスポート」ダイアログボックスで「OK」ボタンをクリックします。これで、指定されたすべてのフォルダ/サブフォルダからメールがExcelワークブックにエクスポートされます。
欠点:
- 複雑な設定: 細心の注意を払ったコードの調整とVBAに関する知識が必要です。
- エラー発生の可能性: カスタマイズ時の小さなミスが原因でエラーや不完全なエクスポートにつながる可能性があります。
- 時間のかかる作業: 短時間または頻繁に行うエクスポートには適していません。
一括処理でメール管理を変革しよう!
繰り返しのメールタスクに疲れていませんか? Kutools for Outlookでは、「一括処理」ツールを使用してワークフローを合理化し、貴重な時間を節約できます。
- 🌟 複数のメールへの返信: テンプレートを使って大規模な返信も簡単に送信可能です。
- 📧 個別転送: 複数のメールを通常メッセージとして転送し、添付ファイルとしてではなく個別に送信します。
- 📝 様々な形式で保存: メールをPDF、Word、Excelなど、一度にさまざまな形式でエクスポート可能!

Kutools for Outlookを使用してフォルダ/サブフォルダからメールをExcelにエクスポート 👍
より高速で手間のかからない方法として、「Kutools for Outlook」は「選択したメールを様々な形式のファイルとして保存」機能を提供しています。この方法は、そのシンプルさ、スピード、多様性から非常に推奨されています。少数のメールを管理する場合でも、大量のデータセットを扱う場合でも、Kutoolsは最小限の努力でシームレスな体験を保証します。
Outlookの非効率さにさようなら!Kutools for Outlookは、一括メール処理を簡単に行えます - さらに、無料のAI機能も搭載!今すぐKutools for Outlookをダウンロード!!
ステップ1: フォルダまたはサブフォルダを選択
エクスポートしたいメールが含まれているフォルダまたはサブフォルダに移動します。Ctrl + Aを押してリスト内のすべてのメールを選択します。
ステップ2: 選択したメールを様々な形式のファイルとして保存機能にアクセス
「Kutools」>「一括処理」>「選択したメールを様々な形式のファイルとして保存」をクリックします。
ステップ3: エクスポート設定を構成
- 「他のファイルとしてメールを保存」ダイアログで、ファイルを保存する宛先フォルダを選択します。
- 「Excel形式」オプションを選択します。
- 「保存内容」セクションで、エクスポートする特定のメール内容(例: ヘッダー、本文)を選択します。
ステップ4: エクスポートを完了
「OK」をクリックしてエクスポートプロセスを開始します。完了すると、指定されたフォルダにすべてのメールが個別のExcelファイルとして保存されます。
利点:
- 高速で直感的: 技術的なスキルがなくても、数回のクリックでメールをExcelにエクスポートできます。
- カスタマイズ可能な出力: 必要に応じて特定のファイル形式や内容を選択できます。
- エラーのないプロセス: VBAメソッドに関連する複雑さや潜在的なエラーを回避できます。
- プロフェッショナルな結果: 整理された記録を作成したり、データを効率的に共有するのに最適です。
最高のオフィス生産性ツール
最新情報: Kutools for Outlook 無料版リリース!
新しくなった Kutools for Outlook を100以上の素晴らしい機能とともに体験してください!今すぐダウンロードしてみましょう!
🤖 Kutools AI : 高度なAI技術を活用し、メールの返信、要約、最適化、拡張、翻訳、作成までを簡単に処理します。
📧 メール自動化: 自動返信(POPとIMAPに対応) / スケジュール電子メールを送信 /送信時にルールで自動 CC/BCC / 高度なルールによる自動転送 / 挨拶を自動追加 / 複数宛先メールを自動的に一通ずつ分割...
📨 メール管理: メールの取り消し / 件名などで詐欺メールをブロックする / 重複メールを削除 / 高度な検索 / フォルダーを整理...
📁 添付ファイルプロ: 一括保存 / 一括切り離し / 一括圧縮 / 自動保存 / 自動的に切り離す / 自動圧縮...
🌟 インターフェイスマジック: 😊さらに美しくてクールな絵文字 /重要なメール到着時に通知 / Outlookを閉じるのではなくグループを最小化...
👍 ワンクリック便利機能: 全員に【Attachment】付きで返信 / フィッシング対策メール / 🕘送信者のタイムゾーン表示...
👩🏼🤝👩🏻 連絡先&カレンダー: 選択したメールから一括で連絡先を追加 /連絡先グループを個別グループに分割 / 誕生日のリマインダーを削除...
お好みの言語で Kutools を利用可能 ― 英語、スペイン語、ドイツ語、フランス語、中国語など40以上の言語に対応!
Kutools for Outlookをワンクリックですぐに利用開始。待たずに今すぐダウンロードして効率を高めましょう!


🚀 ワンクリックダウンロード — Office用アドインをすべて入手
強くおすすめ: Kutools for Office(5-in-1)
ワンクリックで五つのインストーラーを同時ダウンロード ― Kutools for Excel、Outlook、Word、PowerPoint、Office Tab Pro。 今すぐダウンロード!
- ✅ ワンクリックの便利さ: 五つのセットアップパッケージを一度にダウンロードできます。
- 🚀 あらゆるOffice作業に準備完了: 必要なアドインをいつでもインストール可能です。
- 🧰 含まれるもの: Kutools for Excel / Kutools for Outlook / Kutools for Word / Office Tab Pro / Kutools for PowerPoint