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

