Outlookのフォルダ構造をデスクトップ(エクスプローラー)にコピーするにはどうすればよいですか?
ご存知の通り、アーカイブ機能を使用してフォルダ構造を別のOutlookにコピーすることはできますが、Outlookのフォルダ構造を特定のウィンドウフォルダ(例えばデスクトップ)にコピーする方法はご存知ですか?この記事では、Outlookのフォルダ構造を簡単にエクスプローラーにコピーできるVBAをご紹介します。
Outlookのフォルダ構造をデスクトップ(エクスプローラー)にコピー
Outlookのフォルダ構造をデスクトップ(エクスプローラー)にコピー
以下の手順に従って、Outlookのフォルダ構造をデスクトップまたはエクスプローラーにコピーしてください。
1. ナビゲーションペインで、コピーしたいフォルダ構造を持つ指定されたフォルダをクリックしてハイライトし、「Alt」+「F11」キーを押してMicrosoft Visual Basic for Applicationsウィンドウを開きます。

2. 「ツール」>「参照設定」をクリックして参照設定ダイアログボックスを開きます。次に、ダイアログボックスで「Microsoft Scripting Runtime」オプションをチェックし、「OK」ボタンをクリックします。スクリーンショットをご覧ください:

3. 「挿入」>「モジュール」をクリックし、以下のVBAコードを新しいモジュールウィンドウにコピー&ペーストします。
VBA: Outlookのフォルダ構造をエクスプローラーにコピー
Dim xFSO As Scripting.FileSystemObject
Sub CopyOutlookFldStructureToWinExplorer()
ExportAction "Copy"
End Sub
Sub ExportAction(xAction As String)
Dim xFolder As Outlook.Folder
Dim xFldPath As String
xFldPath = SelectAFolder()
If xFldPath = "" Then
MsgBox "You did not select a folder. Export cancelled.", vbInformation + vbOKOnly, "Kutools for Outlook"
Else
Set xFSO = New Scripting.FileSystemObject
Set xFolder = Outlook.Application.ActiveExplorer.CurrentFolder
ExportOutlookFolder xFolder, xFldPath
End If
Set xFolder = Nothing
Set xFSO = Nothing
End Sub
Sub ExportOutlookFolder(ByVal OutlookFolder As Outlook.Folder, xFldPath As String)
Dim xSubFld As Outlook.Folder
Dim xItem As Object
Dim xPath As String
Dim xFilePath As String
Dim xSubject As String
Dim xCount As Integer
Dim xFilename As String
On Error Resume Next
xPath = xFldPath & "\" & OutlookFolder.Name
'?????????,??????
If Dir(xPath, 16) = Empty Then MkDir xPath
For Each xItem In OutlookFolder.Items
xSubject = ReplaceInvalidCharacters(xItem.Subject)
xFilename = xSubject & ".msg"
xCount = 0
xFilePath = xPath & "\" & xFilename
If xFSO.FileExists(xFilePath) Then
xCount = xCount + 1
xFilename = xSubject & " (" & xCount & ").msg"
xFilePath = xPath & "\" & xFilename
End If
xItem.SaveAs xFilePath, olMSG
Next
For Each xSubFld In OutlookFolder.Folders
ExportOutlookFolder xSubFld, xPath
Next
Set OutlookFolder = Nothing
Set xItem = Nothing
End Sub
Function SelectAFolder() As String
Dim xSelFolder As Object
Dim xShell As Object
On Error Resume Next
Set xShell = CreateObject("Shell.Application")
Set xSelFolder = xShell.BrowseForFolder(0, "Select a folder", 0, 0)
If Not TypeName(xSelFolder) = "Nothing" Then
SelectAFolder = xSelFolder.self.Path
End If
Set xSelFolder = Nothing
Set xShell = Nothing
End Function
Function ReplaceInvalidCharacters(Str As String) As String
Dim xRegEx
Set xRegEx = CreateObject("vbscript.regexp")
xRegEx.Global = True
xRegEx.IgnoreCase = False
xRegEx.Pattern = "\||\/|\<|\>|""|:|\*|\\|\?"
ReplaceInvalidCharacters = xRegEx.Replace(Str, "")
End Function
4. 「F5」キーを押すか「実行」ボタンをクリックして、このVBAを実行します。
5. 表示される「フォルダを選択」ダイアログボックスで、コピーしたフォルダ構造を配置する指定されたフォルダを選択し、「OK」ボタンをクリックします。スクリーンショットをご覧ください:

指定されたフォルダに移動すると、フォルダ構造が指定されたハードディスクにコピーされているのがわかります。スクリーンショットをご覧ください:

注:メール、予定、タスクなどのフォルダアイテムもハードディスク内の対応するフォルダにコピーされます。
関連記事
Outlookでフォルダ構造を新しいpstデータファイルにコピーするにはどうすればよいですか?
最高のオフィス生産性ツール
速報: Kutools for Outlook が無料版をリリース!
新しい Kutools for Outlook の無料版を体験してください。70以上の素晴らしい機能が永遠に使えます!今すぐダウンロードをクリック!
🤖 Kutools AI : 高度なAI技術を使用して、メールの返信、要約、最適化、拡張、翻訳、作成を簡単に行います。
📧 メール自動化: 自動返信 (POPとIMAPで利用可能) / メール送信のスケジュール / メール送信時にルールによる自動 CC/BCC / 自動転送 (高度なルール) / 自動挨拶追加 / 複数の宛先を持つメールを個別のメールに自動的に分割...
📨 メール管理: メールの取り消し / 件名やその他によるスパムメールのブロック / 重複したメールの削除 / 高度な検索 / フォルダーを整理...
📁 添付ファイルプロ: バッチ保存 / バッチ切り離し / バッチ圧縮 / 自動保存 / 自動的に切り離す / 自動圧縮...
🌟 インターフェースマジック: 😊より美しくクールな絵文字 /重要なメールが来たときに通知 / クローズ中ではなくOutlookを最小化...
👍 ワンクリックの驚き: 全員に【Attachment】付きで返信 / フィッシング対策メール / 🕘送信者のタイムゾーンを表示...
👩🏼🤝👩🏻 連絡先とカレンダー: 選択したメールから連絡先を一括追加 /連絡先グループを個別のグループに分割 / 誕生日のリマインダーを削除...
Kutools for Outlook をワンクリックで即座にアンロック。待たずに今すぐダウンロードして効率を高めましょう!

