前提・実現したいこと
ExcelVBAを用いて、本日受信したOutlookのメールの受信日時、件名を取得し、シートに書き込みたいです。
(本文や添付ファイルは必要ないです)
色々と調べていくうちにOutlookのメールを取得するサンプルを見つけ、試したところ日付と件名の取得はうまくいきました。
しかし今のところフォルダ内の全件のメールを取得してしまっているため、どうにか日付で条件を付けてメールを取得したいです。
元々はGASでGmailとデータベースの情報をスプレッドシートに出力する機能を作成したかったのですが、業務で使用しているデータベースの性質上GASでは接続がほぼ不可能らしく、慣れないVBAとOutlookを使い代用するしかありませんでした。(VBAではデータベース接続が可能でした)
VBAに関する知見はほとんどないため、どこにどのような絞り込みを行えばよいかわかりません。不勉強なのは承知の上ですが、お力添えいただけないでしょうか。
該当のソースコード
Sub GetMail() Dim objOutlook As Outlook.Application Dim myNameSpace As Outlook.Namespace Dim myInbox, mySubfolder Dim today As Date Dim targetReceivedDate As String today = Date targetReceivedDate = today MsgBox targetReceivedDate Set objOutlook = New Outlook.Application Set myNameSpace = objOutlook.GetNamespace("MAPI") Set myInbox = myNameSpace.GetDefaultFolder(olFolderInbox) Set mySubfolder = myInbox.Folders.Item("フォルダ名") Dim i As Long For i = 1 To mySubfolder.Items.Count With ThisWorkbook.Worksheets("Sheet1") .Cells(i + 1, 1).Value = mySubfolder.Items(i).SentOn .Cells(i + 1, 2).Value = mySubfolder.Items(i).Subject End With Next i End Sub
試したこと
参考になりそうなサイトを見てみた。
https://fastclassinfo.com/entry/vba_outlook_receivedmail_analysis/
https://qiita.com/t-yama-3/items/37545fa9a00c140fb657
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q12213156327
→日付絞り込み前のコードを真似してみたがループ終了時に「1004 アプリケーション定義またはオブジェクト定義のエラーです。」が出る。
日付絞り込みのコードをどこにいれればよいか全く見当つかず…
補足情報(FW/ツールのバージョンなど)
Excelのバージョン:
Microsoft® Excel® for Microsoft 365 MSO (バージョン 2110 ビルド 16.0.14527.20270) 64 ビット
回答1件
あなたの回答
tips
プレビュー