【Outlook VBA】Unreadプロパティでメールを未読に戻す方法


outlook,mailitem,unread

皆様こんにちは、ノグチです。

前回の記事では、特定のフォルダにメールがあったらOutlook終了時にメッセージを表示する方法をご紹介しました。

【Outlook VBA】QuitイベントでOutlook終了時にメッセージを表示する
Outlook終了時に実行されるイベント、Quitイベントで、Outlook終了時にメッセージを表示させる方法をご紹介しています。返信が必要なメールは専用のフォルダに入れておいて、このイベントを使えば、返信していないメールがあることを知らせることができますよ。

しかし返信しないといけないメールだったり、重要な内容のメールを格納しておくフォルダならば、Outlook終了時ではなく、パッと見でフォルダにメールが何件あるか見られるようにしておきたい…

そういえば受信フォルダは、未読メール件数を表示してくれますよね。

ということで今回は、フォルダ内のメール件数を表示できるように、受信フォルダ内の既読メールを未読メールにする方法をご紹介します。

Unreadプロパティで既読メールを未読メールにする

メールの既読・未読をセットするには、MailItemオブジェクトのUnreadプロパティを使います。

UnreadプロパティにTrueをセットするとメールを未読メールに、Falseを指定すると既読メールにすることができます。

記述方法はコチラ。

MailItemオブジェクト.Unread
では試しに、このUnreadプロパティを使って、今開いているメールを未読メールにしてみましょう。

コードはこちらです。

outlook,メール,未読

このメールを開きつつ、上のコードを実行してみると…

outlook,既読メール,フォルダ

この通り、既読メールが未読メールになっていますね。

フォルダ内のメールを全て既読にする

受信フォルダを右クリックすると、「全て開封済みにする」という、フォルダ内のメールを全て既読メールにする機能がありますよね。

それをVBAでやってみましょう。

こちらの「重要」フォルダ内には、未読メールが5件あります。

outlook,unread,folder

この5件のメールを、VBAで既読メールにしてみましょう。

コードはこちらです。

まず「重要メール」フォルダのFolderオブジェクトを取得して、Itemメソッドでフォルダ内にあるメールのMailItemオブジェクトを取得。

そして各メールのMailItemオブジェクトのUnreadプロパティにFalseをセットしていくコードです。

こちらを実行して、フォルダの中を覗いてみると…

outlook,既読メール

この通り、メールが全て既読になっていますね。

要返信メールをフォルダに移動して未読メールにするコード

折角なので、前々回までの記事でご紹介した、後で返信が必要なメールを「要返信」フォルダへ移動させるコードに、今回ご紹介しているUnreadプロパティを加えて、既読メールを未読メールにしつつ、「要返信」フォルダへ移動させてみましょう。

コードはこちら。

最後のMoveメソッドで「要返信」フォルダに移動させる手前にUnreadプロパティで未読メールにしています。
 
このコードを実行すれば、「要返信」フォルダに格納されたメールが未読メールになって、フォルダ名の隣にフォルダに何件メールがあるか一目瞭然ですね!

最後に

今回は、MailItemオブジェクトのUnreadプロパティで、既読メールを未読メールにする方法をご紹介しました。

Unreadプロパティは単体ではあまり用途が無いように思えますが、今回のように他のメソッドやイベントと組み合わせると、便利な使い道がありそうですね。

それでは、最後までお読み頂きありがとうございました!

連載目次:【Outlook VBA】メールをワンクリックで操作しよう

基本機能に加えてVBAを使えばもっと便利になるOutlook。

メールの返信、フォルダ移動だってワンクリックでできますよ。

便利なOutlookを、更に手間なく使ってみましょう!

  1. 【Outlook VBA】Replyメソッドでメールにワンクリックで返信する方法
  2. 【Outlook VBA】Moveメソッドでメールを指定のフォルダに移動させる方法

  投稿者プロフィール

ノグチフリーランスPG・SE
元製造子会社SE。
業務システム保守・導入両方やった経験をお伝えすることで、少しでもシステムや手作業に悩まされる人が減ればいいなぁと日々夢見ております。

タイトルとURLをコピーしました