皆様こんにちは、ノグチです。
ちょっと油断するとすぐに溜まっていく未読メール。
ちゃんと目を通していけばいいんですが、最近メールでやり取りすることも減っていることもあって、ついつい溜めがちになってしまいます。
特定の送信先から送られたメールをサブフォルダに振り分けるようにしてみたりしますが、それでも未読メールがあるのを見落としてしまったりして…
フォルダに未読メールがあることをダイアログで表示できたらいいのになあ…
そんなときこそVBAの出番です!
UnReadItemCountでプロパティで未読メール件数を取得する
UnReadItemCountプロパティの記述方法
まずは、受信ボックスの未読メール件数を取得するところから始めましょう。
受信ボックスの未読メール件数を取得するためには、FolderオブジェクトのUnReadItemCountプロパティを使います。
記述方法はこちら。
ちなみに、Folderオブジェクトを取得する方法はこちらの記事でご紹介していますので、併せてご覧くださいね。
受信フォルダ内の未読メール件数を取得するコード
UnReadItemCountで未読メールを取得するには、こんな感じで記述します。
Private Sub GetUnReadMail() Dim myNamespace As NameSpace Dim myInbox As Object Dim lngMailcnt As Long Dim i As Long Set myNamespace = GetNamespace("MAPI") Set myInbox = myNamespace.GetDefaultFolder(olFolderInbox) lngMailcnt = myInbox.UnReadItemCount MsgBox "未読メールが" & lngMailcnt & "件あります!" End Sub
これで、受信ボックス内の未読メール件数を取得してくれます。
そしてこのコードを実行してみると…
この通り、未読メール件数がメッセージで表示されましたね。
未読メール溜めすぎだろ!というツッコミはご容赦くださいませ…
特定のサブフォルダ内の未読メール件数を取得する場合
上のコードでは、受信フォルダの未読メール件数を取得していますが、特定のサブフォルダだけの未読メール件数を取得することもできますよ。
サブフォルダのFolderオブジェクトを取得して、取得したFolderオブジェクトのUnReadItemCountプロパティを使えばよいだけなので、上のコードの
lngMailcnt = myInbox.UnReadItemCount
の部分を、
lngMailcnt = myInbox.Folders.Items("特定のサブフォルダ名")UnReadItemCount
とすれば、サブフォルダの未読メール件数を取得してくれます。
この場合は、Outlookの仕訳ルールと併せて使えば、自分にとってより重要度の高いメールの未読メール件数をキャッチすることができますね。
サブフォルダの未読メール件数を取得するコード
例えば、コチラの画像の「議事録」というサブフォルダの未読メールだけを取得したい場合。
先に説明した通り、Folderオブジェクトを取得する部分を、サブフォルダのFolderオブジェクトを取得するように変えればよいだけなので、
lngMailcnt = myInbox.UnReadItemCount
の部分を、
lngMailcnt = myInbox.Folders.Items("議事録").UnReadItemCount
とすれば、「議事録」というサブフォルダにある未読メール件数を取得してくれます。
全体のコードはこんな感じになります。
Private Sub Application_Startup() Dim myNamespace As NameSpace Dim myInbox As Object Dim lngMailcnt As Long Dim i As Long Set myNamespace = GetNamespace("MAPI") Set myInbox = myNamespace.GetDefaultFolder(olFolderInbox) lngMailcnt = myInbox.Folders.Items("議事録").UnReadItemCount MsgBox "未読メールが" & lngMailcnt & "件あります!" End Sub
そして、このコードを実行してみると…
この通り、サブフォルダ「議事録」の未読メールだけを取得して、メッセージ表示してくれますね。
最後に
今回は、Outlookの未読メール件数を取得して、メッセージで表示する方法をご紹介しました。
未読メールがあるのをいつも見落としてしまうという方にはオススメです。
また、イベントと組みわせたりしてみると、もっと便利に使えるかもしれませんね。
それでは、最後までお読みいただきありがとうございました!
連載目次:Outlook VBAでメールを操作してみよう
メーラーとして名高く、そして便利なOutlook。
Outlookのメールだって、VBAで操作することができますよ。本シリーズでは、Outlookのメールを、VBAで操作する方法をご紹介していきます。