No.2ベストアンサー
- 回答日時:
こんな感じで。
Dim objOL As Outlook.Application
Dim objAcct As Outlook.Account
Dim objStore As Outlook.Store
Dim fldInbox As Outlook.Folder
Set objOL = CreateObject("Outlook.Application")
' アカウントの取得
Set objAcct = objOL.Session.Accounts("bbbbb@outlook.com")
' ストアの取得
Set objStore = objAcct.DeliveryStore
' 受信トレイの取得
Set fldInbox = objStore.GetDefaultFolder(olFolderInbox)
Debug.Print fldInbox.Items.Count
こちらを参考にしました。
https://outlooklab.wordpress.com/2018/04/07/%E8% …
早速のご回答ありがとうございました。
ご紹介いただいたサイトで,
「Application オブジェクトの Session プロパティ (NameSpace オブジェクト) の GetDefaultFolder メソッドは、既定のアカウントのストアに紐づいているフォルダーしか取得ができません。
しかし、Account オブジェクトの DeliveryStore プロパティから取得した Store オブジェクトの GetDefaultFolder メソッドを使うと、そのアカウントに紐づいている予定表フォルダーなどが取得できます。」
の表記で,納得いたしました。
ただ,ここで,また疑問が。私の環境(OUTLOOK2013 WIN10)では,GetDefaultFolder
で,操作できるのは,データファイル以下の受信トレイのようです。
ということは,データファイルが,既定のアカウント?になっているのでしょうか,この辺が解らなくなりました。
とりあえず,お礼まで。
No.3
- 回答日時:
#1です。
#1のコードは、先のQA投稿VBAコードの抜粋なのでエラー処理などについては、その回答の全体をご覧ください。また、
行っている事は、メーラーに複数のアカウント登録している場合、そのoutlookObj.Session.Accountsを1つずつ探索して
かつ、その中にあるObject, objmailItemのフォルダを探索しています。コード自体はさらにフォルダ名を(決め打ち)変数セットしています。
GetDefaultFolderは、文字通りDefaultなので サブでセットしているアカウントに対しては、探し出す必要があったと思います。(不確かですが)
下記は、抜粋したVBAコードです。アカウント情報部分を変更して実行するとその受信トレイ内のメール数が表示すると思います。
実際には、さらにその中のメールの操作、添付ファイルを保存したり、メールを移動したり行うと思います。
For i = 1 To InboxFolder.Items.Count
Set objmailItem = InboxFolder.Items(i) ’フォルダ内のItemつまりメールを変数objmailItemにセットして、処理したりします。
メールの数を表示するサンプル
Option Explicit
Sub Outlook_integration()
Dim outlookObj As Outlook.Application
Dim myNameSpace As Object, objmailItem As Object
Dim fldr As Folder, InboxFolder As Folder, DoneFolder As Folder
Dim oAccount As Account
Set outlookObj = CreateObject("Outlook.Application")
Set myNameSpace = outlookObj.GetNamespace("MAPI")
On Error GoTo ErrOutlook
For Each oAccount In outlookObj.Session.Accounts
For Each fldr In myNameSpace.Folders
If fldr = "xxxxx@xxxx.xx.xx" Then 'アカウント情報 メールアドレスや名前 変更箇所(必須)
Set InboxFolder = fldr.Folders("受信トレイ") '対象フォルダ名
' Set DoneFolder = fldr.Folders("xxx")
Exit For
End If
Next
Next
MsgBox ("対象メール数 : " & InboxFolder.Items.Count)
ErrTr:
Set outlookObj = Nothing
Set myNameSpace = Nothing
Set InboxFolder = Nothing
Exit Sub
ErrOutlook:
MsgBox "Outlook設定" & Chr(13) & "エラー" & Err.Number & Chr(13) & Err.Description
GoTo ErrTr
ErrExcel:
GoTo ErrTr
End Sub
No.1
- 回答日時:
こんばんは、
>メールアカウント下の「受信」フォルダ は、デフォルト設定でないメールアカウントと言う事でしょうか?
以前このQAで書きましたコードでアドバイスします。 https://oshiete.goo.ne.jp/qa/11312920.html
参考サイト https://stackoverflow.com/questions/33953386/vba …
Dim outlookObj As Outlook.Application
Dim myNameSpace As Object, objmailItem As Object
Dim fldr As Folder, Trget1Folder As Folder, Trget2Folder As Folder
Dim oAccount As Account
Dim Attcount As Long
Set outlookObj = CreateObject("Outlook.Application")
Set myNameSpace = outlookObj.GetNamespace("MAPI")
On Error GoTo ErrOutlook
For Each oAccount In outlookObj.Session.Accounts
For Each fldr In myNameSpace.Folders
If fldr = "xxxxx@xxxxxxx.com" Then '上記内探索でアカウントが見つかれば以下を実行(対象アカウント)
Set Trget1Folder = fldr.Folders("XXX") ’変数にセットするターゲットフォルダ名(対象アカウントサブフォルダ)
Set Trget2Folder = fldr.Folders("~~~") ’変数にセットするターゲットフォルダ名2
Exit For
End If
Next
Next
詳細が不明の為、参考まで
早速のご回答ありがとうございます。
よく分からないところもあるのですが,きちんと,エラー処理までも含んだコードなんですね。
きっと,こんな風に,くんでいけば,不要なエラーを排除できるのでしょうね。
とりあえずお礼まで。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
好きなおでんの具材ドラフト会議しましょう
肌寒くなってきて、温かい食べ物がおいしい季節になってきましたね。 みなさんはおでんの具材でひとつ選ぶなら何にしますか? 1番好きなおでんの具材を教えてください。
-
家・車以外で、人生で一番奮発した買い物
どんなものにお金をかけるかは人それぞれの価値観ですが、 誰もが一度は清水の舞台から飛び降りる覚悟で、ちょっと贅沢な買い物をしたことがあるはず。
-
「これはヤバかったな」という遅刻エピソード
寝坊だったり、不測の事態だったり、いずれにしても遅刻の思い出はいつ思い出しても冷や汗をかいてしまいますよね。
-
この人頭いいなと思ったエピソード
一緒にいたときに「この人頭いいな」と思ったエピソードを教えてください
-
「お昼の放送」の思い出
小学校から中学校、ところによっては高校まで お昼休みに校内放送で、放送委員が音楽とかおしゃべりとか流してましたよね。 最近は自分でもラジオができるようになって、そのクオリティもすごいことになっていると聞きます。
-
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
VBAを使ってOutlookメール本文からキーワードのみを抽出してExcelにリストさせるには
その他(プログラミング・Web制作)
-
OUTLOOK VBA 指定フォルダ内のメール添付ファイル2つをエクセルのシートにまとめるマクロ
Visual Basic(VBA)
-
-
4
エクセルVBAのフォームを最前面にする方法を教えてください。
Visual Basic(VBA)
-
5
db2でisnumericは使えないのでしょうか。
その他(データベース)
-
6
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
7
お助けください!VBAのファイル名エラーについて
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
gmailで、10000件のメールを一...
-
迷惑メール対策でアドレス変更...
-
Gmailアカウントを、「特定の端...
-
Gmail開くと、メッセージを取得...
-
MAIL administratorって、何?
-
間違ったアドレスに送信しても...
-
アップルIDと、 Gmail同じでも...
-
Gメールが送れません。何故でし...
-
ドットを上に打つキーはどれ?
-
【gmail】存在しない宛先に送信...
-
以前使っていたアドレスのメー...
-
メールアカウント設定時 ホスト...
-
自分が以前使っていたメールア...
-
ps4で課金した時やなんか買った...
-
gmailアドレスの@以降
-
迷惑メールのアドレスの頭にあ...
-
アドレスやアカウントを削除す...
-
gmailのアカウント追加
-
アカウントの消えたアドレスに...
-
LINEのアカウントを削除するか...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
gmailで、10000件のメールを一...
-
Gmailアカウントを、「特定の端...
-
間違ったアドレスに送信しても...
-
Gメールが送れません。何故でし...
-
MAIL administratorって、何?
-
Gmail開くと、メッセージを取得...
-
メールアカウント設定時 ホスト...
-
outlookでサーバーに残っている...
-
複数人にメールを一斉送信する...
-
ToとCCとBCCに同じアドレスを入...
-
アップルIDと、 Gmail同じでも...
-
gmailアドレスの@以降
-
ドットを上に打つキーはどれ?
-
迷惑メール対策でアドレス変更...
-
【gmail】存在しない宛先に送信...
-
パソコンでgmailを見るにはどう...
-
以前使っていたアドレスのメー...
-
自分が以前使っていたメールア...
-
マカフィーのマイアカウントを...
-
outlookについて
おすすめ情報