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

パソコンパソコン・スマホ教室
スポンサーリンク

こんにちは、皆さん。今日は、OutlookのVBAを使って、特定のメールを自動的に指定したフォルダに移動する方法をご紹介します。例えば、特定のプロジェクトに関するメールを自動的に整理したいときに、とても便利な方法です。

スポンサーリンク

Outlook VBAとは?

Outlookのイメージ

Outlookのイメージ

まず、Outlook VBAについて簡単に説明します。VBAは「Visual Basic for Applications」の略で、Microsoft Office製品に組み込まれているプログラミング言語です。これを使うことで、Outlookの操作を自動化したり、カスタマイズしたりすることができます。

メールを特定のフォルダに移動する基本的なVBAコード

では、具体的にどのようにメールを移動するのか、基本的なコードを見てみましょう。

vba
Sub MoveEmails()
Dim myNamespace As Outlook.NameSpace
Dim myInbox As Outlook.Folder
Dim myDestFolder As Outlook.Folder
Dim myItems As Outlook.Items
Dim myItem As Object

Set myNamespace = Application.GetNamespace("MAPI")
Set myInbox = myNamespace.GetDefaultFolder(olFolderInbox)
Set myItems = myInbox.Items
Set myDestFolder = myInbox.Folders("移動先フォルダ名")

For Each myItem In myItems
If TypeName(myItem) = "MailItem" Then
' 条件を指定してメールをフィルタリング
If myItem.Subject Like "*特定のキーワード*" Then
myItem.Move myDestFolder
End If
End If
Next myItem
End Sub

このコードでは、受信トレイ内のすべてのメールをチェックし、件名に特定のキーワードが含まれている場合に、指定したフォルダに移動します。フォルダ名やキーワードは、ご自身の環境に合わせて変更してください。

特定の送信者からのメールを自動的に移動する方法

特定の送信者からのメールを自動的に移動したい場合、以下のようなコードを使用します。

vba
Sub MoveEmailsFromSender()
Dim myNamespace As Outlook.NameSpace
Dim myInbox As Outlook.Folder
Dim myDestFolder As Outlook.Folder
Dim myItems As Outlook.Items
Dim myItem As Object

Set myNamespace = Application.GetNamespace("MAPI")
Set myInbox = myNamespace.GetDefaultFolder(olFolderInbox)
Set myItems = myInbox.Items
Set myDestFolder = myInbox.Folders("移動先フォルダ名")

For Each myItem In myItems
If TypeName(myItem) = "MailItem" Then
' 送信者のアドレスをチェック
If myItem.SenderEmailAddress = "sender@example.com" Then
myItem.Move myDestFolder
End If
End If
Next myItem
End Sub

このコードでは、送信者のメールアドレスが特定のアドレスと一致する場合に、そのメールを指定したフォルダに移動します。

VBAコードの実行方法

VBAコードを実行する手順は以下の通りです。

  1. Outlookを開きます。
  2. キーボードのAltキーを押しながらF11キーを押して、VBAエディタを開きます。
  3. メニューから「挿入」→「モジュール」を選択し、新しいモジュールを作成します。
  4. 先ほどのコードをコピーして、作成したモジュールに貼り付けます。
  5. コード内のフォルダ名や条件を、ご自身の環境に合わせて変更します。
  6. キーボードのF5キーを押して、コードを実行します。

これで、指定した条件に合致するメールが、設定したフォルダに移動されます。

よくある質問や疑問

Q1: VBAコードを実行してもメールが移動しません。なぜでしょうか?

考えられる原因はいくつかあります。まず、フォルダ名や条件が正しく設定されているか確認してください。また、メールアイテム以外のアイテムが存在する場合、コードが正しく動作しないことがあります。その場合、コード内でアイテムの種類をチェックするようにしてください。

Q2: 特定のフォルダが存在しない場合、自動的に作成することはできますか?

はい、可能です。以下のコードを使用して、フォルダが存在しない場合に新しく作成することができます。

vba
Sub CreateFolderIfNotExist()
Dim myNamespace As Outlook.NameSpace
Dim myInbox As Outlook.Folder
Dim myDestFolder As Outlook.Folder

Set myNamespace = Application.GetNamespace("MAPI")
Set myInbox = myNamespace.GetDefaultFolder(olFolderInbox)

On Error Resume Next
Set myDestFolder = myInbox.Folders("新しいフォルダ名")
On Error GoTo 0

If myDestFolder Is Nothing Then
Set myDestFolder = myInbox.Folders.Add("新しいフォルダ名")
End If
End Sub

このコードを実行すると、指定したフォルダが存在しない場合に新しく作成されます。

今すぐ解決したい!どうしたらいい?

LINE公式

いま、あなたを悩ませているITの問題を解決します!
「エラーメッセージ、フリーズ、接続不良…もうイライラしない!」

あなたはこんな経験はありませんか?

✅ ExcelやWordの使い方がわからない💦
✅ 仕事の締め切り直前にパソコンがフリーズ💦
✅ 家族との大切な写真が突然見られなくなった💦
✅ オンライン会議に参加できずに焦った💦
✅ スマホの重くて重要な連絡ができなかった💦

平均的な人は、こうしたパソコンやスマホ関連の問題で年間73時間(約9日分の働く時間!)を無駄にしています。あなたの大切な時間が今この悩んでいる瞬間も失われています。

LINEでメッセージを送れば即時解決!

すでに多くの方が私の公式LINEからお悩みを解決しています。

最新のAIを使った自動応答機能を活用していますので、24時間いつでも即返信いたします。

誰でも無料で使えますので、安心して使えます。

問題は先のばしにするほど深刻化します。

小さなエラーがデータ消失重大なシステム障害につながることも。解決できずに大切な機会を逃すリスクは、あなたが思う以上に高いのです。

あなたが今困っていて、すぐにでも解決したいのであれば下のボタンをクリックして、LINEからあなたのお困りごとを送って下さい。

相談しに行く

ぜひ、あなたの悩みを私に解決させてください。

まとめ

OutlookのVBAを活用することで、メールの整理や管理を効率化することができます。最初は少し難しく感じるかもしれませんが、慣れてくるとさまざまな自動化が可能になります。ぜひ試してみてください。

他にも疑問やお悩み事があればお気軽にLINEからお声掛けください。

コメント

タイトルとURLをコピーしました