入力した文字列で検索し、見つかったアイテムをその文字列の名前のフォルダーに移動するマクロ


コメントにて以下のご要望をいただきました。


Outlook2010で受信トレイを開いた状態で特定文字を入力を促すボックスを表示、入力した特定文字でOutlookのフォルダを作成した上でその文字を含むメールをコピーする
例えば、マクロを起動すれば入力を促すボックスが現れ、
①「検索文字を入力してください」
② 「五月晴れ」と入力
③ Outlookのフォルダに受信トレイ-「五月晴れ」とフォルダが作成される。
④ 受信トレイの本文に「五月晴れ」という文字を含んだメールが「五月晴れ」フォルダにコピーされる。
ようなマクロを探してますが見つかりません。
作成していただければ幸いです。


以下のようなマクロで実現できます。

' ここをトリプルクリックでマクロ全体を選択できます。
Public Sub FindAndMoveByKeyword()
    On Error Resume Next
    Dim strKeyword As String
    Dim fldCurrent As Folder
    Dim fldMoveTo As Folder
    Dim i As Integer
    ' 検索文字列の入力
    strKeyword = InputBox("検索文字を入力してください")
    ' 検索文字列が入力されたら検索
    If strKeyword <> "" Then
        ' 表示中のフォルダーを取得
        Set fldCurrent = ActiveExplorer.CurrentFolder
        ' 表示中のフォルダーの下の検索文字列と同じ名前のフォルダーを取得
        Set fldMoveTo = fldCurrent.Folders(strKeyword)
        If fldMoveTo Is Nothing Then
            ' フォルダーがなければ作成
            Set fldMoveTo = fldCurrent.Folders.Add(strKeyword)
        End If
        ' 現在のフォルダーのアイテムを一つずつ確認
        For i = fldCurrent.Items.Count To 1 Step -1
            With fldCurrent.Items(i)
                ' 本文に検索文字列が含まれていたら移動
                If .Body Like "*" & strKeyword & "*" Then
                    .Move fldMoveTo
                End If
            End With
        Next
    End If
End Sub

マクロの登録方法やメニューへの追加について

広告

入力した文字列で検索し、見つかったアイテムをその文字列の名前のフォルダーに移動するマクロ」への3件のフィードバック

  1. いつもここで勉強をさせて頂いております。
    このマクロで、検索ヒットしたメールをフォルダーに移動するのではなく、手動で高度検索した時のように、あるいは受信トレイ等にフィルターをかけた時のように、一覧で表示したい場合にはどのようなコーディングをすればよいでしょうか。

    高度な検索の結果を一覧で表示するマクロをいろいろネットで探してみたのですが、ヒットした件数を表示したり、ヒットしたメールの件名を順番に表示したりするマクロしか見つけられませんでした。

    どうか、よろしくお願い致します。

  2. いつもこの研究所で勉強させて頂いております。ありがとうございます。
    このマクロで、検索条件を満たしたメールデータを別のフォルダーに移動するのではなく、
    手動で高度な検索をした場合のように、あるいは、受信トレイにフィルターをかけた時のように
    一覧で表示したい場合にはどのようなコーディングになりますでしょうか。

    どうかよろしくお願い致します。

    • 例えば現在のフォルダーで “test” という文字列を検索したい場合、以下のようなメソッドを実行します。
      ActiveExplorer.Search “test”, olSearchScopeCurrentFolder

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中