![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
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で質問しましょう!
似たような質問が見つかりました
- Outlook(アウトルック) Outlookメールを立ち上げた(開いた)ときに常に『受信メール』一覧が表示される、という設定の方法 1 2023/04/30 17:37
- Outlook(アウトルック) ウエイブ用メール仕様にて 1 2022/07/28 00:59
- その他(パソコン・スマホ・電化製品) 送信メールフォルダーの中身が突然なくなった 2 2022/11/13 18:55
- その他(ソフトウェア) PC上のOutlookでIMAPアクセス時の送信が出来ない。Android上では問題なし。 2 2022/09/28 11:22
- Outlook(アウトルック) 未読ならば受信トレイから削除する 2 2023/02/12 19:21
- gooメール ドコモメール、OCNメールの受信ボックスが同じなのはどうしてですか 1 2022/07/28 00:28
- その他(Microsoft Office) VBA メール送信済で実行されるはずが、実行されない時があります。 2 2023/02/02 14:05
- その他(Microsoft Office) 会社PCのメールが更新されない 6 2023/07/17 23:19
- Outlook(アウトルック) Outlookでメールをデリートキーで削除した場合における、メールの移動先フォルダを変更したい。 2 2022/10/31 00:53
- その他(メールソフト・メールサービス) サンダーバードでメールが受信されない 10 2022/03/24 17:00
このQ&Aを見た人はこんなQ&Aも見ています
-
賃貸で可能な古民家風レトロな部屋作りのコツ!改めて知る畳の高い機能性と魅力も紹介
畳の部屋を雰囲気のよい部屋に仕上げたい!賃貸住宅でもできる古民家風のレトロな部屋作りのコツを伺った。
-
OUTLOOK VBA 指定フォルダ内のメール添付ファイル2つをエクセルのシートにまとめるマクロ
Visual Basic(VBA)
-
アウトルックvba 差出人を指定したい
PowerPoint(パワーポイント)
-
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
-
4
VBAを使ってOutlookメール本文からキーワードのみを抽出してExcelにリストさせるには
その他(プログラミング・Web制作)
-
5
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
6
アウトルックが起動しているかどうかを取得するには?
Visual Basic(VBA)
-
7
VBAでOutlookの受信メールをexcelに出力するときにエラーが出ます
Visual Basic(VBA)
-
8
エクセルでエラーが出て困っています。
Excel(エクセル)
-
9
エクセルで別ブックをバックグラウンドでオープンする方法
Excel(エクセル)
-
10
Excelのセルにユーザー名を表示する方法
Excel(エクセル)
-
11
特定セルの内容を更新したら、その更新日を自動的に表示する方法について
Excel(エクセル)
-
12
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
13
Excel 他のファイルからシートをコピー 名前の定義を引き継がない。
Excel(エクセル)
-
14
VBAで二重起動を防止したいのですが、
その他(Microsoft Office)
-
15
VisualBasicからOutlookのメールアカウントの設定を追加
Visual Basic(VBA)
-
16
Excel VBA Outlook送信済メール削除
Excel(エクセル)
-
17
VBAで全ての受信トレイの数ではなく受信メールの数
Excel(エクセル)
-
18
UserForm
Visual Basic(VBA)
-
19
エクセルVBAでアウトルックメールの差出人変更
Excel(エクセル)
-
20
お助けください!VBAのファイル名エラーについて
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
gmailで、10000件のメールを一...
-
Gmailアカウントを、「特定の端...
-
間違ったアドレスに送信しても...
-
outlookでサーバーに残っている...
-
複数人にメールを一斉送信する...
-
「company.email.ne.jp」って何?
-
MAIL administratorって、何?
-
niftyのアドレスについて
-
@が2つあるメールアドレスって?
-
自分が以前使っていたメールア...
-
ToとCCとBCCに同じアドレスを入...
-
e-mailの宛先(To)には、敬称を...
-
迷惑メールのアドレスの頭にあ...
-
会社でGmailを使用した際の、内...
-
Gmail送信の不具合について
-
Gmailを送ったらiPアドレスはば...
-
メールが使えず困っています
-
以前使っていたアドレスのメー...
-
gmailのアカウント追加
-
gmailアドレスの@以降
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
gmailで、10000件のメールを一...
-
Gmailアカウントを、「特定の端...
-
間違ったアドレスに送信しても...
-
MAIL administratorって、何?
-
outlookでサーバーに残っている...
-
複数人にメールを一斉送信する...
-
迷惑メールのアドレスの頭にあ...
-
Gmail送信の不具合について
-
gmailアドレスの@以降
-
迷惑メール対策でアドレス変更...
-
パソコンでgmailを見るにはどう...
-
niftyのアドレスについて
-
ToとCCとBCCに同じアドレスを入...
-
以前使っていたアドレスのメー...
-
Gmail開くと、メッセージを取得...
-
ps4で課金した時やなんか買った...
-
メールアカウント設定時 ホスト...
-
「company.email.ne.jp」って何?
-
アドレスやアカウントを削除す...
-
アップルIDと、 Gmail同じでも...
おすすめ情報