トップ回答者
ACCESS_VBAでoutlook受信トレイのサブフォルダを操作したい

質問
-
windows10でoffice_365_soloを使用しています。
件名の事をaccess(またはexcel)で実現したいです。
ちなみにoffice2000では出来ています。
またoffice_365_soloで受信トレイのメールはVBAで見る事ができます。
送信メールを作成する事もできます。
しかしoffice_365_soloで受信トレイのサブフォルダを見る事に成功しません。VBAのコードはWEBで見かけた以下のようなコードを(修正したりもして)試しましたが、
上手くできません。
なにか私の見落としやoutlookの仕様変更など原因のヒントをいただけないでしょうか?
Sub GetmailFolder_b()
Dim objOutlook As Outlook.Application
Dim myNamespace As Outlook.NameSpace
Dim myInbox As Variant
Dim i As LongSet objOutlook = New Outlook.Application
Set myNamespace = objOutlook.GetNamespace("MAPI")
Set myInbox = myNamespace.GetDefaultFolder(olFolderInbox)
Debug.Print myInbox '受信トレイにアクセスできる
For i = 1 To myInbox.Folders.Count 'Countは0件
Debug.Print myInbox.Folders(i) 'ここでサブフォルダを取得できない
Next i
End Sub
回答
すべての返信
-
今回の問題に直接は関係ないですがオブジェクトをループで回すとき、ループカウンタを
使わないなら For Each を使った方がいいと思います。Sub test() ' Outlook VBA での例 Dim Fol As Folder Dim myInbox As Object Set myInbox = Application.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox) For Each Fol In myInbox.Folders Debug.Print Fol.Name Next End Sub
あと、受信トレイにサブフォルダはありますか?
Outlook から受信トレイのプロパティ -> フォルダーサイズで確認してください。
-
ご返信ありがとうございます。
提示していただいたコードをOutlook VBAで試したところサブフォルダを表示しません。
(For Eachの前に「Debug.Print myInbox」とすれば受信トレイは表示されます。)Outlook から受信トレイのプロパティ -> フォルダーサイズで確認したところ、
サブフォルダは表示されます。
書き忘れた事に気が付きました。
私のOutlookではアカウントがメールアドレス毎に複数あります。
最初に作成し、最も使用しているアカウントしか意識していなかったのですが、
もしかするとそれ以外のアカウントの受信トレイを参照しているのでしょうか?
まずアカウントを指定しなければならないのでしたら、どのように指定するのでしょう?