「みんな教えて! 選手権!!」開催のお知らせ

Outlookの「受信日時」「送信者アドレス」「件名」「本文」の内容をExcelへ
VBAで使って取り込みたいのですが、エラーが出てしまいます。
設定はOutlookとExcelとも、Microsoft office 16()object Libraryは
チェックが入っております。

VBAの構文が間違っているのでしょうか?
お分かりの方、宜しくお願い致します。

Sub GetMail0()

Dim oApp As New Outlook.Application

Dim oNs As Outlook.Namespace
Set oNs = oApp.GetNamespace("MAPI")

Dim oF As Folder
Set oF = oNs.Folders("自分の@outlook.com").Folders("受信トレイ")

Dim mailLists As Items
Set mailLists = oF.Items


mailLists.Sort "[ReceivedTime]", False
Dim i As Long
For i = 1 To 3 'mailLists.Count
On Error Resume Next
Cells(i + 1, "A").Value = mailLists.Item(i).ReceivedTime
Cells(i + 1, "B").Value = mailLists.Item(i).SenderEmailAddress
Cells(i + 1, "C").Value = mailLists.Item(i).Subject
Cells(i + 1, "D").Value = mailLists.Item(i).Body

Next i

End Sub

A 回答 (2件)

こんばんは



>エラーが出てしまいます。
どこでどのようなエラーになっているのでしょうか?
・・というのも、当方の環境では問題なく動作します。
(参照設定をしなくても良いように、書き換えてから実行しましたけれど・・)

ご質問には関係ありませんけれど、メアドが一つだけであれば、受信フォルダーの取得は、
>Set oF = oNs.Folders("自分の@outlook.com").Folders("受信トレイ")
と二段階にしなくても、直接、
 Set oF = oNs.GetDefaultFolder(olFolderInbox)
でも取得可能です。
(ただし、エクセルVBAからは「olFolderInbox」の列挙値は使えませんが、値指定すれば可能です)
    • good
    • 0
この回答へのお礼

実行できました。
VBAの設定に誤りがあったみたいです。
ありがとうございました。

お礼日時:2024/02/05 23:03

Sub nnn()


Set oApp = CreateObject("Outlook.Application")
Set myNameSpace = oApp.GetNamespace("MAPI")
Set oFolder = myNameSpace.GetDefaultFolder(6)


i = 1
For Each oItem In oFolder.Items
Cells(i, 1) = oItem.ReceivedTime
Cells(i, 2) = oItem.SenderName
Cells(i, 3) = oItem.Subject
Cells(i, 4) = oItem.Body
i = i + 1
Next
End Sub

かな
バージョンまでは確認してないけど
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報