非プログラマーでもできる!業務の自動化

OutlookのVBAでメールを指定のフォルダに移動する方法

当ページのリンクの一部に広告が含まれています。

課題・悩み「選択したメールを特定のフォルダにサクッと移動したい」

解決策「選択したメールを特定フォルダに移動する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マクロでメール処理を効率化。

コピペでOK!Outlook VBAのコード一覧

Outlook VBAの基本

Outlookの操作

Outlookメール作成

Outlook メール本文作成

Outlook メール管理

Outlook 予定表

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次