Outlookでフォルダが消えてしまい困ったときはないでしょうか。
けど、そんな中で悩むことは、
・Outlookでフォルダの一覧を取得し、消えたフォルダを確認したいが方法がわからない。
ですよね。
今回はそんなお悩みを解決する
・VBAでOutlookのフォルダ一覧を取得しExcelへ出力する方法
についてまとめます!
もくじ
Outlookで消えたフォルダを復元する方法
Outlookで消えたフォルダを復元する方法について説明をします。
サンプルケースとして、受信トレイ配下に作成したフォルダ「サブフォルダ1-1」を誤って消してしまい、復元する内容とします。
以下のように誤って削除してしまい、フォルダごとなくなっています。
Outlook「削除済みアイテム」から復元する
Outlook左メニューの「削除済みアイテム」から復元する方法について説明をします。
フォルダを「削除済みアイテム」に移動させた場合、以下のように「削除済みアイテム」フォルダの下にサブフォルダが展開されるようになります。
もし復元したいフォルダがあればマウスでドラッグして移動するか、右クリックし、メニューからフォルダの移動を選択し移動させます。
Outlook 「削除済みアイテムをサーバーから復元」から復元する
次に完全にフォルダを消去し、「削除済みアイテム」フォルダにない場合の復元方法について説明をします。
「削除済みアイテム」フォルダを選択し、「ホーム」タブの 「削除済みアイテムをサーバーから復元」を選びます。
もしくは右ウインドウの上部「このフォルダーから最近削除されたアイテムを復元します」からでも可能です。
「削除済みアイテムを復元」ウイザードが表示されたら、削除されたアイテムを探して「選択されたアイテムを復元」を選択し「OK」をクリックします。
なお、フォルダは復元対象に含まれませんので、新規作成する必要があります。
フォルダの準備ができましたら復元したアイテムを移動します。
Outlookで消えたフォルダを見つけ出す方法
次にフォルダが消えてしまった原因として、削除したのではなく、誤って別のフォルダへ移動してしまった可能性も考えられます。
この場合、一つ一つのフォルダを確認しなければなりませんが、フォルダの件数が多かったり、階層が何層にもなっていたりすると少々手間がかかります。
次にご紹介する方法は、そんな手間を軽減する、Outlookフォルダの一覧をExcelに出力し、Excelデータから検索などをして確認する方法について説明をします。
フォルダ一覧出力先のExcelを用意する
フォルダ一覧の出力先となるExcelを用意しましょう。
以下のように1行目にフォルダの階層を示す項目名を追記します。
Outlookのフォルダ一覧をExcelに取り込むVBA
VBAの準備
Outlookのフォルダ一覧をExcelに取り込むVBAの実装方法について説明をします。
今回のサンプルコードは以下の通りです。
Sub Outlookフォルダ一覧を出力する()
'Outlook用の定義
Dim olApp As Outlook.Application
Dim olNamespace As Outlook.Namespace
Dim olFolderstemp As Outlook.Folders
Dim intIchi As Integer
'フォルダ一覧の出力を開始する行番号を指定します。
intIchi = 2
'指定範囲の値をクリアします。
Range("A2:G1000000").Clear
'Outlookオブジェクトをインスタンスにします。
Set olApp = New Outlook.Application
Set olNamespace = olApp.GetNamespace("MAPI")
Set olFolderstemp = olNamespace.Folders
'フォルダ一覧出力サブルーチンを呼び出します。
Call Outlookフォルダ一覧出力サブルーチン(olFolderstemp, intIchi, 1)
MsgBox "フォルダ一覧出力完了!", vbInformation
'オブジェクトを解放します。
Set olApp = Nothing
Set olNamespace = Nothing
Set olFolderstemp = Nothing
End Sub
Sub Outlookフォルダ一覧出力サブルーチン(olFolderstemp As Outlook.Folders, j As Integer, k As Integer)
Dim i As Integer
Dim olsubFolderstemp As Object
'フォルダの件数分処理を繰り返します。
For i = 1 To olFolderstemp.Count
'フォルダ名をセルへ代入します。
Cells(j, k) = olFolderstemp(i).Name
j = j + 1
'サブフォルダの件数がある場合は再度サブルーチンを呼び出し、再帰的に処理を繰り返します。
If olFolderstemp(i).Folders.Count > 0 Then
Set olsubFolderstemp = olFolderstemp(i).Folders
Call Outlookフォルダ一覧出力サブルーチン(olsubFolderstemp, j, k + 1)
End If
Next
'オブジェクトを解放します。
Set olsubFolderstemp = Nothing
End Sub
VBAの設定
VBAの設定箇所は1か所のみです。
フォルダ一覧の出力を開始する行番号を指定します。
intIchi = 2
VBAの実装
「VBAの実装手順」をご参照ください。
VBAの実行
VBAを実行してみましょう。
「フォルダ一覧出力完了!」と表示されたら完了です。
Excelシートを見てみましょう。
はい、フォルダ一覧がExcelに取り込まれていますね!
さらに移動先がわからなかったフォルダも発見することができました!
VBAの説明
Outlookフォルダ一覧を出力するモジュール
Outlookオブジェクトをインスタンスにします。
Set olApp = New Outlook.Application
Set olNamespace = olApp.GetNamespace("MAPI")
Set olFolderstemp = olNamespace.Folders
フォルダ一覧出力サブルーチンを呼び出します。
Call Outlookフォルダ一覧出力サブルーチン(olFolderstemp, intIchi, 1)
Outlookフォルダ一覧出力サブルーチン
フォルダの件数分処理を繰り返します。
For i = 1 To olFolderstemp.Count
フォルダ名をセルへ代入します。
Cells(j, k) = olFolderstemp(i).Name
サブフォルダの件数がある場合は再度サブルーチンを呼び出し、再帰的に処理を繰り返します。
If olFolderstemp(i).Folders.Count > 0 Then
Set olsubFolderstemp = olFolderstemp(i).Folders
Call Outlookフォルダ一覧出力サブルーチン(olsubFolderstemp, j, k + 1)
End If
VBAの実装手順
Excel VBAからOutlookを操作するための下準備
Excel VBAからOutlookを操作するための下準備をしていきます。
①Excelを起動し、「開発」タブをクリックします。
②VBEの画面が開いたら、メニューから「ツール」>「参照設定」を選択します。
③「Microsoft Outlook XX.X Object Library」を探してチェックボックスにチェックし「OK」をクリックします。
Excel側へVBAを実装する
Excel側にVBAを実装していきます。
①Excelを新規に開き、「開発」タブをクリックし、「VisualBasic」をクリックします。
もしくはショートカットキー「Alt」+「F11」でもOKです。
②標準モジュールを追加します。
左ペインのVBAProjectを右クリックし、「挿入」、「標準モジュール」を選択します。
③右ペインのウインドウに上記のマクロを入力します。
こちらで実装完了です。
VBAを実行する
VBAを実行する手順となります。
①「開発」タブの「VBA」をクリックし実行したいマクロを選択し、「実行」をクリックします。
②処理がされたことが確認できれば完了です。
さいごに
いかがでしょうか。
今回は
・VBAでOutlookのフォルダ一覧を取得しExcelへ出力する方法
についてまとめました。
また、他にも便利な方法がありますので、よろしければご参照頂ければと思います。
コメントを残す