【ExcelVBA】Outlookからメールデータを取得してシートに展開する(本文展開)
前回、Excelマクロ(VBA)でOutlookからメールデータを取得してシートに展開する方法について書きました。今回はメール本文の中を取得して定型文から必要情報を抽出したいと思います。
こちらがOutlookの様子ですが、「未決」フォルダ内にメールが保存されていて、それぞれ名前や年齢などが定型文で書かれています。
こちらがソースコードです。
Sub getOutlookMail() Set myapp = CreateObject("Outlook.Application") Set i_Folder = myapp.Session.GetDefaultFolder(6) Set myFolder = myapp.Session.Folders("xxxxx@outlook.jp").Folders("未決") Range("A2:G1000").ClearContents r = 2 For idx = myFolder.Items.Count To 1 Step -1 Cells(r, 1).Value = myFolder.Items(idx).Subject Cells(r, 2).Value = myFolder.Items(idx).SenderName Cells(r, 3).Value = myFolder.Items(idx).SenderEmailAddress Cells(r, 4).Value = myFolder.Items(idx).ReceivedTime Cells(r, 5).Value = getInfo(myFolder.Items(idx).body, "【名前】") Cells(r, 6).Value = getInfo(myFolder.Items(idx).body, "【年齢】") Cells(r, 7).Value = getInfo(myFolder.Items(idx).body, "【住所】") r = r + 1 Next End Sub Function getInfo(mailbody As String, keyword As String) As String Dim textline As Variant textline = Split(mailbody, vbCrLf) getInfo = "" For i = 0 To UBound(textline) If InStr(textline(i), keyword) > 0 Then getInfo = Replace(textline(i), keyword, "") Exit Function End If Next End Function
実行結果は以下の動画の通りです。
スポンサーリンク