Outlook/VBA: 受信トレイのメールを個人フォルダに移動する
2017/09/13
Outlookにはメール受信時にフォルダへの振り分け機能があるのですが、個人的に受信はあくまで受信トレイに、既読後にフォルダに移動する、という行動を取っています。未読メールは受信トレイに集約したいので。そうなると、自動振り分け機能を使うことができず手動でやるしかありません。そこで、すべて既読にしたあとに、マクロで指定フォルダへ移動するようにしました。
[ad#top-1]
個人フォルダの作り方と、Outlookでマクロ(VBA)を使う基本的な手順は以下のブログで書いていますので参考まで。
今まで、Outlook2016で説明してきましたが、先だってそのパソコンが故障してしまい現在修理中につき、今回はサブマシンの中のOutlook2010を使って説明します。基本同じやり方です。
こちらが用意したOulook2010と2つの既読メールです。
今回は、「テスト1」を「Folder1」フォルダに、「テスト2」を「Folder2-1」フォルダに移動させます。見ての通り、「Folder2-1」は「Folder2」の子フォルダになっています。
この処理を行うマクロは以下の通りです。
まず、Outlook.Applicationオブジェクトをセットして、受信トレイを取得しておきます。GetDefaultFolderの引数6が受信トレイを示しています。その後、受信トレイのメール数を取得していますが、一番古いメールがインデックス1となりますので、一番新しいメールのインデックス=受信トレイのメール数となります。
ここで、一番新しいメール「テスト1」を、「Folder1」フォルダに移動しています。
次に、「テスト2」を、「Folder2-1」フォルダに移動しています。子フォルダへのアクセスはFoldersメソッドを連ねて書くことで可能になります。「Folder2-1」は「Folder2」の子フォルダなので、.Folders(“Folder2”).Folders(“Folder2-1”) となるわけです。
これを実行すると以下のように各フォルダに移動しました。
今回はあくまで基本的な機能のみフォーカスして簡単なプログラムを紹介しましたが、これを使って全メールをループして指定フォルダに移動することができると思います。(そのプログラムはいずれ紹介します。)
■追記■
全メールをループして指定フォルダに移動するマクロを作りました。GitHubにてソースコード公開中。
[ad#ad-1]
スポンサーリンク