皆様こんにちは、ノグチです。
前回の記事では、MailItemオブジェクトのReplyメソッドを使って、ワンクリックで定型文でのメール返信をする方法をご紹介しました。
メールは、読んだら即返信するのが理想とはいえ、今手が離せなかったり、調べてからでないと返信できないこともありますよね。
でも、返信するまで放置するのも忍びないので、取り敢えず「後で詳細メールします」といった返信をしておきつつ、そのまま忘れてしまう、ということもありがちです。
では、返信が必要なメールは一箇所に集めておいて、そこを見れば返信が必要なメールがあることが分かるようにしておくのはどうでしょう?
ということで今回は、メールを指定のフォルダに移動させる方法をご紹介します!
Moveメソッドでメールを指定フォルダに移動させる
Moveメソッドの記述方法
メールを指定のフォルダに移動してくれるのが、MailItemオブジェクトのMove メソッドです。
記述方法はこちら。
単純ですね。
パラメーターは、移動先にしたい受信フォルダのFolderオブジェクトを指定します。
“フォルダー名”のように指定してもエラーになりますので、ご注意を!
メールの移動先フォルダを準備する
今開いているメールをMoveメソッドで「要返信」というフォルダに格納してみましょう。
まずは受信フォルダのサブフォルダに、「要返信」フォルダを作っておきます。
そして、このフォルダのFolderオブジェクトを取得しておきましょう。
Sub Get_Folder() Dim myNameSpace As NameSpace Dim myInbox As Folder Set myNameSpace = GetNamespace("MAPI") Set myInbox = myNameSpace.GetDefaultFolder(olFolderInbox).Folders.Item("要返信") End Sub
FolderオブジェクトやNameSpaceオブジェクトについては、こちらの記事でご紹介していますので、併せてご覧ください。
今開いているメールのMailItemオブジェクトを取得する
お次は、移動させるメールのMailItemオブジェクトを取得します。
今開いているメールのMailItemオブジェクトを取得するには、ApplicationオブジェクトのActiveInspectorメソッドと、CrrentItemプロパティを使うのでしたね。
Sub Get_Mail() Dim objMail As Object Dim objIns As Inspector Set objIns = Application.ActiveInspector Set objMail = objIns.CurrentItem '今開いているメールオブジェクトを取得 End Sub
Moveメソッドでメールを指定フォルダに移動させる
最後に、今回の主役、Moveメソッドを入れましょう。
上ふたつのコードを組み合わせ、最後にMoveメソッドを入れてあげれば完成です。
Sub Move_Mail() Dim objItem As Object Dim objIns As Inspector Dim myNameSpace As NameSpace Dim myInbox As Folder Set myNameSpace = GetNamespace("MAPI") Set myInbox = myNameSpace.GetDefaultFolder(olFolderInbox).Folders.Item("要返信") Set objIns = Application.ActiveInspector Set objItem = objIns.CurrentItem '今開いているメールオブジェクトを取得 objItem.Move myInbox End Sub
そして、先ほど作成した「要返信」フォルダを覗いてみると…
この通り、メールが「要返信」フォルダへ移動されていますね。
ワンクリックで定型文の返信を送りつつメールを指定フォルダに移動する
メールを受け取ったとき、予定を調整したり、確認しないとそのメールに対して明確な返信ができないな…なんていうときに、とりあえず「確認して連絡します。」というメールを送ったりすること、ありますよね。
そういう場合、上のコードと前回のワンクリックで定型文で返信する方法を組み合わせて、とりあえずの返信をしつつ、返信が必要なフォルダに移動させておけば便利です。
Moveメソッドを前回の記事でご紹介したコードに加えれば、ワンクリックでメールに返信しつつ、メールを「要返信」というフォルダに移動させることができますよ。
前回の記事でご紹介したReplyメソッドを上のコードに差し込みます。
返信メールの文面は、「予定を確認後連絡します。」としておきましょう。
するとこんなコードになります。
Sub Reply_and_Move_Mail() Dim objItem As Object Dim objIns As Inspector Dim myNameSpace As NameSpace Dim myInbox As Folder Dim objReoly As Object Set myNameSpace = GetNamespace("MAPI") Set myInbox = myNameSpace.GetDefaultFolder(olFolderInbox).Folders.Item("要返信") Set objIns = Application.ActiveInspector Set objItem = objIns.CurrentItem '今開いているメールオブジェクトを取得 Set objReply = objItem.Reply With objReply .Body = "予定を確認後連絡します。" & .Body .Send End With objItem.Move myInbox End Sub
メールに返信したら「要返信」フォルダから移動させるのを忘れずに
返信が必要なメールを「要返信」フォルダに移動させる方法をご紹介していますが、移動させたあとにメールの返信をした場合は、返信元メールを受信ボックスなり、他のフォルダに移しておくようにしましょう。
そのままにしておくと、結局どれが要返信メールなのかわからなくなってしまいますからね。
「要返信」フォルダから他のフォルダへメールを移動させる場合にも、Moveメソッドを使えばワンクリックでメールが移動できますよ。
最後に
今回は、Moveメソッドを使ってメールを指定フォルダへ移動させる方法をご紹介しました。
Outlookの機能である自動振り分けでは振り分けられなかったり、自分がメールの内容を忘れないように、一旦別のフォルダに移したい…なんていうときに使えますよ。
それでは最後までお読みいただきありがとうございました!