こんにちは!メールが溜まりまくってるtknriaです!
仕事やプライベートに限らず、毎日膨大な量のメールを処理する時代になりましたが、どんどん溜まっていきますよね。
受信メールは全部見た上で、削除したり仕分けしたりしていますけど、送信済みボックスや削除済みボックスの中は溜まりまくり。
削除しようとしても、膨大すぎて選別するのが大変ですよね。
そこで、条件に合致する不要なメールを、一括で完全削除してしまう機能を実装します。
私は、メーラーはOutlook(読み:アウトルック)を愛用しているので、VBAを用いた方法をご紹介します。
メールを気持ちよく一括削除!
ここでは簡易的に、件名に「ウイルス」という文字が含まれていたら削除する、という条件にしています。
'----- 以下、ソース -----
Public Sub DeleteMails()
' 受信トレイ内のメールを削除
Call DeleteItems(Session.GetDefaultFolder(olFolderInbox))
' 送信済みアイテム内のメールを削除
Call DeleteItems(Session.GetDefaultFolder(olFolderSentMail))
' 削除済みアイテム内のメールを削除
Call DeleteItems(Session.GetDefaultFolder(olFolderDeletedItems))
MsgBox ("削除完了")
End Sub
Public Sub DeleteItems(objMailBox As Folder)
Dim i As Integer
For i = objMailBox.Items.Count To 1 Step -1
With objMailBox.Items(i)
If InStr(.Subject, "ウイルス") > 0 Then
.Delete ' 問答無用で削除するので注意
Else
End If
End With
Next i
End Sub
'----- 以上、ソース -----
Public Sub DeleteMails()
' 受信トレイ内のメールを削除
Call DeleteItems(Session.GetDefaultFolder(olFolderInbox))
' 送信済みアイテム内のメールを削除
Call DeleteItems(Session.GetDefaultFolder(olFolderSentMail))
' 削除済みアイテム内のメールを削除
Call DeleteItems(Session.GetDefaultFolder(olFolderDeletedItems))
MsgBox ("削除完了")
End Sub
Public Sub DeleteItems(objMailBox As Folder)
Dim i As Integer
For i = objMailBox.Items.Count To 1 Step -1
With objMailBox.Items(i)
If InStr(.Subject, "ウイルス") > 0 Then
.Delete ' 問答無用で削除するので注意
Else
End If
End With
Next i
End Sub
'----- 以上、ソース -----
条件のところはカスタマイズしてください。
ソース中にも注意書きしていますが、本当に問答無用で削除されるので、デバッグのときには気をつけてください。
対象のフォルダも指定でき、
Call DeleteItems(Session.GetDefaultFolder(olFolderDeletedItems))
の、
olFolderDeletedItems
の部分をいろいろ変更することで、設定できます。
「受信トレイ」、「送信済みアイテム」、「削除済みアイテム」については上記ソースの通りです。
キレイにしていく順番が大事!
「削除済みアイテム」内の処理を最後にするのがポイントで、上記ソースでは、
・「受信トレイ」から「削除済みアイテム」に移動
↓
・「送信済みアイテム」から「削除済みアイテム」に移動
↓
・「削除済みアイテム」から完全削除
という処理になります。
ここで、「送信済みアイテム」と「削除済みアイテム」の順番を入れ替えると、
・「受信トレイ」から「削除済みアイテム」に移動
↓
・「削除済みアイテム」から完全削除
↓
・「送信済みアイテム」から「削除済みアイテム」に移動
という処理になり、「送信済みアイテム」内にあった不要アイテムが「削除済みアイテム」に残されたままになるので注意ですね。
掃除は上から!と同じですね。
億劫なあとがき
全てのメールチェックをするのは当然として、その仕分けも膨大な量になりますよね。
閲覧や分別はこまめにしたほうが良いですけど、削除はこの機能はまとめてすっきりしちゃいましょう!