[[20200624112433]] 『outlookをExcelVBA で任意のサブ受信フォルダから』(Kさん) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『outlookをExcelVBA で任意のサブ受信フォルダから発信者と件名を取得したいです』(Kさん)

タイトルにつきまして,outlookのVBA操作に詳しい方にご教授いただきたいです.
outlookには2つのアドレスを登録しておりまして,2つめのアドレスの受信フォルダのサブフォルダにある受信メールから,差出人と件名と発信日時を取得したいです.
ですが,下記コードでは1つめのアドレスのサブフォルダしか取得できずに,どのような引数を用いれば良いのかわかりあぐねています.

以下,実際のコードです.
____________________________
Option Explicit

Sub GetMail()
Dim objOutlook As Outlook.Application
Dim myNamespace As Outlook.Namespace
Dim myInbox, mySubfolder

Set objOutlook = New Outlook.Application
Set myNamespace = objOutlook.GetNamespace("MAPI")

Set myInbox = myNamespace.GetDefaultFolder(olFolderInbox)
Set mySubfolder = myInbox.Folders.Item("教育12")

Dim i As Long

For i = 1 To mySubfolder.Items.Count

    With ThisWorkbook.Worksheets("Sheet1")
        .Cells(i + 1, 2).Value = mySubfolder.Items(i).SentOn
        .Cells(i + 1, 3).Value = mySubfolder.Items(i).Subject
    End With
Next i
End Sub

< 使用 Excel:Excel2016、使用 OS:Windows7 >


 >Set mySubfolder = myInbox.Folders.Item("教育12")

 "教育12" の部分ですが、両方のアドレスで、同じ名前のフォルダーを持っているんですか?

(半平太) 2020/06/24(水) 20:09


半平太様

ご反応いただき,ありがとうございます.
2つ目のアドレスのみ"教育12"となっております.
(Kさん) 2020/06/25(木) 08:41


 >2つ目のアドレスのみ"教育12"となっております.

 ちょっと事態が呑み込めないのですが、
           当初はこう説明があったんですが、(「教育12」は一つ目で取得できる)
         ↓
 >下記コードでは1つめのアドレスのサブフォルダしか取得できずに

 それはさて置き、取り敢えず以下に変更すると、どのステートメントまで進みますか?

 >Set myInbox = myNamespace.GetDefaultFolder(olFolderInbox)
 >Set mySubfolder = myInbox.Folders.Item("教育12")
                   |
                  |2つ目の受信トレイの心算り
                  ↓
 Set myInbox = myNamespace.Folders(2).Folders("受信トレイ")
 Set mySubfolder = myInbox.Folders.Item("教育12")

(半平太) 2020/06/25(木) 09:42


半平太様

言葉足らずで大変申し訳ありません!

「教育12」は1つ目のアドレスの受信フォルダには含まれておらず,
2つめのアドレスの受信フォルダのサブフォルダにのみ含まれております.
1つ目の受信フォルダのサブフォルダ(教育12以外のもの)しか取得できませんでした.

お教えいただいたコードを試しましたが,

実行時エラー'-2147221233(8004010f)':
実行しようとした操作が失敗しました.オブジェクトが見つかりませんでした.

と表示されました.

(Kさん) 2020/06/25(木) 14:30


 >実行時エラー'-2147221233(8004010f)':
 >実行しようとした操作が失敗しました.オブジェクトが見つかりませんでした.

 どっちのステートメントで引っ掛かりましたか?

(半平太) 2020/06/25(木) 15:00


半平太様

お返事が遅くなってすみません.
今もう一度試してみましたところ,
エラーは表示されずに,意図していた処理ができました.
原因は分からないです.
本当に助かりました.ありがとうございました.

半平太様はVBA上でのoutlookの操作の仕方をどのように学んだのか,
よろしければお教えいただけませんでしょうか.
(Kさん) 2020/06/26(金) 10:19


 >outlookの操作の仕方をどのように学んだのか,

 GetDefaultFolderをキーにネットで検索しただけなので、
 Kさんが参考にしたサイトと同じだと思いますよ。

 そこでは、何番目の取り出し方なんて書いて無かったので、
 myNamespaceの子供が何個あり、その孫に何個あるかをローカルウィンドウで調べて行って、
 "教育12"の所在を力技で探しただけです。

 こう言う分析作業は、よく分からないオブジェクトを調べる時、普通にやりますよ。

(半平太) 2020/06/26(金) 13:01


なるほどですね.
私はまだ構造を深く理解していないので,そのやり方が思いつけませんでした.
半平太様のおかげで,自分の取り組むべき学びに気づけました.
色々とありがとうございました!

(Kさん) 2020/06/26(金) 13:29


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.