Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 11全般 : Microsoft 365)
Outlookメールの別メールアカウントの受信フォルダを取得したい
投稿日時: 24/08/05 12:53:49
投稿者: gacha

エクセルのマクロでOutlookメールの情報を取得するマクロを作成しようと思っております。
Outlookメールは会社で使っており、会社の各人のメールアカウントとは別に共有メールアカウントも同時に見れるように設定しております。
※Outlookメールの『アカウントの設定』で追加できました。
 
GetDefaultFolderメソッドを使って個人のメールアカウントの受信トレイのフォルダーを格納できることは調べることが出来ました。
ただ、この受信トレイは個人のメールアカウントを格納出来るのですが、別のメールアカウントをどのように格納すればいいのかが分からず。。。
 
どこかでメールアドレスを指定すればよいのかを教えて頂けますと非常に助かります。
何卒、御教授の程よろしくお願いします。
 

Sub 受信トレイ取得()

    Dim ol As Object, ns As Object
    Dim ib As Object, i As Long, r As Long
    
    Set ol = createobjest("Outlook.Appilicacion")
    Set ns = ol.GetNamespace("MAPI")
    Set ib = ns.GetDefaultFolder(6)'←ここの部分で指定ができるのでしょうか。
    
    r = 3
    Rows(r & ":" & Rows.Count).ClearContents
    
    For i = 1 To ib.Items.Count
        With ActiveSheet
            .Cells(r, 1).Value = ib.Items(i).ReceivedTime
            .Cells(r, 2).Value = ib.Items(i).SenderName
            .Cells(r, 3).Value = ib.Items(i).Subject
            .Cells(r, 4).Value = 本文整形(ib.Items(i).Body)
            r = r + 1
        End With
    Next i
    
    
    MsgBox "取得が完了しました"

End Sub

 
 
 

投稿日時: 24/08/05 13:34:07
投稿者: gacha

申し訳ございません。
コードを一部、間違えておりました。
訂正をさせてください。
 

Sub 受信トレイ取得()

    Dim ol As Object, ns As Object
    Dim ib As Object, i As Long, r As Long
    
    Set ol = CreateObject("Outlook.Application")
    Set ns = ol.GetNamespace("MAPI")
    Set ib = ns.GetDefaultFolder(6)'←ここの部分で指定ができるのでしょうか。
    
    r = 3
    Rows(r & ":" & Rows.Count).ClearContents
    
    For i = 1 To ib.Items.Count

        With ActiveSheet
            .Cells(r, 1).Value = ib.Items(i).ReceivedTime
            .Cells(r, 2).Value = ib.Items(i).SenderName
            .Cells(r, 3).Value = ib.Items(i).Subject
            .Cells(r, 4).Value = 本文整形(ib.Items(i).Body)
            r = r + 1
        End With
    Next i


    
    
    MsgBox "取得が完了しました"

End Sub

回答
投稿日時: 24/08/05 14:13:07
投稿者: Suzu

Outlook は 使っていないですが
 
ちょっと調べると、
 
オブジェクト モデル (Outlook)
https://learn.microsoft.com/ja-jp/office/vba/api/overview/outlook/object-model
 
から、Account あたりが今回のカギになりそうなキーワードかなとアタリをつけました。
 
Outlook VBA Account をキーワードにWEB検索を行いました。
 
[Outlook VBA]複数アカウントでも可!自動で自分のメールアドレスをBCCに追加
https://zenn.dev/haretokidoki/articles/12bd452da03687
 
015 Outlook VBA オブジェクト構造
https://kunohe.tech/outlook-vba/777/
 
Outlook 研究所
 
https://outlooklab.wordpress.com/outlook-macroscript-index/
 
あたりが参考になるんではないかと思います。
 
 
まんまそのままもありましたね。
 
Outlookにて指定されたメールアドレスの受信トレイを取得
https://blogvba.com/getinboxbyemailaddress/

投稿日時: 24/08/08 13:17:30
投稿者: gacha

Suzu 様
 
ご返信ありがとうございます。
下記、色々と調べて頂き誠にありがとうございます。
丁度一番下の分が私が求めていたものそのもので、
大変助かりました。
 
今後とも、よろしくお願いします。
 
 

Suzu さんの引用:
Outlook は 使っていないですが
 
ちょっと調べると、
 
オブジェクト モデル (Outlook)
https://learn.microsoft.com/ja-jp/office/vba/api/overview/outlook/object-model
 
から、Account あたりが今回のカギになりそうなキーワードかなとアタリをつけました。
 
Outlook VBA Account をキーワードにWEB検索を行いました。
 
[Outlook VBA]複数アカウントでも可!自動で自分のメールアドレスをBCCに追加
https://zenn.dev/haretokidoki/articles/12bd452da03687
 
015 Outlook VBA オブジェクト構造
https://kunohe.tech/outlook-vba/777/
 
Outlook 研究所
 
https://outlooklab.wordpress.com/outlook-macroscript-index/
 
あたりが参考になるんではないかと思います。
 
 
まんまそのままもありましたね。
 
Outlookにて指定されたメールアドレスの受信トレイを取得
https://blogvba.com/getinboxbyemailaddress/