LoginSignup
0
0

【VBA】Outlookのメールデータを抽出

Last updated at Posted at 2024-02-04

Sub Mailデータ抽出()

Dim oApp As New Outlook.Application

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

'抽出するプロファイルとフォルダを定義する
Dim oF As Folder
Set oF = oNs.Folders("任意のプロファイル").Folders("任意のフォルダ")

'アイテムのセット
Dim mailLists As Items
Set mailLists = oF.Items

'ソートを受信時間で、昇順(true:降順 false:昇順)
mailLists.Sort "[ReceivedTime]", true

'取得するデータの種類、入力箇所、取得数(例:3件)
Dim i As Long
For i = 1 To 3
On Error Resume Next
Cells(i + 1, "A").Value = mailLists.Item(i).ReceivedTime
Cells(i + 1, "D").Value = mailLists.Item(i).SenderEmailAddress
Cells(i + 1, "E").Value = mailLists.Item(i).Subject
Cells(i + 1, "F").Value = mailLists.Item(i).Body
Next i

End Sub


特定のサブフォルダを指定する場合は、フォルダの定義を以下のように変更する。
Set oF = oNs.Folders("任意のプロファイル").Folders("任意のフォルダ").Folders("任意のサブフォルダ")


※連続して別のフォルダの情報を取得する場合は、「Next i」と「End Sub」の間に、下記を追記。

Set oF = oNs.Folders("任意のプロファイル").Folders("任意のフォルダ")

Set mailLists = oF.Items

mailLists.Sort "[ReceivedTime]", True

For i = 1 To 3
On Error Resume Next
Cells(i + 5, "A").Value = mailLists.Item(i).ReceivedTime
Cells(i + 5, "D").Value = mailLists.Item(i).SenderEmailAddress
Cells(i + 5, "E").Value = mailLists.Item(i).Subject
Cells(i + 5, "F").Value = mailLists.Item(i).Body
Next i

End Sub

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0