課題・悩み「選択したメールを特定のフォルダにサクッと移動したい」
解決策「選択したメールを特定フォルダに移動するVBAマクロ」を解説
「確認が終わったメールを完了フォルダにいつも移動しているけど、ワンクリックでできるようにならないかな」
「選択したメールを特定のフォルダに移動するVBAマクロを作成したよ」
【選択したメールを特定フォルダに移動するVBAマクロ】を解説しています。
Outlookで選択したメールを特定のフォルダに移動するVBAマクロのコード
このVBAマクロは、Microsoft Outlookで選択されたメールアイテムを特定のフォルダに移動するものです。
具体的には、「受信トレイ」の下にある「サンプルフォルダ」に選択したメールを移動します。
Sub MoveSelectedEmailsToSpecifiedFolder()
Dim objNamespace As Outlook.NameSpace
Dim objDestFolder As Outlook.MAPIFolder
Dim objItem As Object
Dim objMail As Outlook.MailItem
Dim objSelection As Outlook.Selection
Dim parentFolderName As String
Dim childFolderName As String
' 親フォルダと子フォルダの名前を設定
parentFolderName = "サーバー"
childFolderName = "サンプルフォルダ"
' OutlookのNameSpace(データのコンテナ)を取得
Set objNamespace = Application.GetNamespace("MAPI")
' 移動先のフォルダを設定
Set objDestFolder = objNamespace.GetDefaultFolder(olFolderInbox).Folders(parentFolderName).Folders(childFolderName)
' 選択されたメールアイテムを取得
Set objSelection = Application.ActiveExplorer.Selection
' 選択された各メールアイテムに対する処理
For Each objItem In objSelection
If objItem.Class = olMail Then
Set objMail = objItem
' メールを指定したフォルダに移動
objMail.Move objDestFolder
End If
Next
' オブジェクトを解放
Set objMail = Nothing
Set objItem = Nothing
Set objDestFolder = Nothing
Set objNamespace = Nothing
End Sub
処理ごとの解説
Outlookとの連携
Outlookのデータを操作するための「NameSpace」オブジェクトを取得します。
移動先フォルダの設定
移動先となるフォルダ(「サンプルフォルダ」)を設定します。
選択されたメールの取得
現在Outlookで選択されているメールアイテムを取得します。
メールの移動
選択されたメールアイテムを、指定した「サンプルフォルダ」に移動します。
コード実行時の注意点
データ量が多い場合
もし選択したメールの量が非常に多い場合、処理に時間がかかる可能性があります。
元に戻せない
このマクロで行ったメールの移動は、元に戻せません。移動させる前に、しっかりと確認するようにしてください。
必要な環境設定
マクロの設定
Outlookの「ファイル」→「オプション」→「セキュリティ」→「マクロの設定」で、「すべてのマクロを有効にする」または「通知を表示してからマクロを有効にする」を選ぶ必要があります。
参照設定
VBAエディタで「ツール」→「参照設定」を開き、”Microsoft Outlook xx.0 Object Library”(xxはバージョン番号)にチェックを入れてください。
変更する箇所
フォルダ名
移動先となるフォルダの名前が「サンプルフォルダ」になっています。これを自分の環境に合わせて変更します。
フォルダ階層
移動先のフォルダが「受信トレイ」直下にあります。別の階層にある場合は、その階層に合わせてコードを変更します。
アイテム種類
現在はメールアイテムのみを対象としています。他の種類のアイテムも対象にする場合は、この部分を変更します。
まとめ:マクロでメール処理を効率化
VBAマクロでメール処理を効率化。
Outlookの作業を自動化する便利なVBAマクロのコードの一覧です。
コメント