選択したメッセージをまとめて一つのテキストファイルに保存するマクロ


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


win10(32bit)、outlook2016を使用しています。以下の操作を手作業でやっていますが、マクロで行うことは出来ますでしょうか。
・サブフォルダにある複数のメールを選択。(サブフォルダ内の全てのメールでも構いません。)
・選択した状態で「ファイル」「名前を付けて保存」をクリック。
・任意のフォルダを指定、「ファイルの種類(テキスト)」を選択、ファイル名は例えば「123.txt」として保存する。
(結果的に、複数のメールの内容が並んだ1つのテキストファイルが作成されます。)


現在表示中のフォルダーの選択したメールをテキストに保存するマクロは以下のようになります。
フォルダーのすべてのメールを保存したい場合は ActiveExplorer.SelectionActiveExplorer.CurrentFolder.Items としてください。

' ここをトリプルクリックでマクロ全体を選択できます。
Public Sub SaveSelectedAsText()
    On Error Resume Next
    Const TEXT_FILE = "c:\temp\messages.txt" ' 保存するファイル名を指定
    Dim objMail As MailItem
    Dim objAttach As Attachment
    Dim strAttach As String
    '
    Open TEXT_FILE For Output As #1
    For Each objMail In ActiveExplorer.Selection
        With objMail
            Print #1, "差出人:" & vbTab & .SenderName
            Print #1, "送信日時:" & vbTab & .SentOn
            If .To <> "" Then
                Print #1, "宛先:" & vbTab & .To
            End If
            If .CC <> "" Then
                Print #1, "CC:" & vbTab & .CC
            End If
            Print #1, "件名:" & vbTab & .Subject
            If .Attachments.Count > 0 Then
                strAttach = ""
                For Each objAttach In .Attachments
                    strAttach = strAttach & objAttach.FileName & "; "
                Next
                strAttach = Left(strAttach, Len(strAttach) - 2)
                Print #1, "添付ファイル: " & vbTab & strAttach
            End If
            If .Importance <> olImportanceNormal And .Sensitivity <> olNormal Then
                Print #1, ""
            End If
            If .Importance = olImportanceHigh Then
                Print #1, "重要度:" & vbTab & "高"
            End If
            If .Importance = olImportanceHigh Then
                Print #1, "重要度:" & vbTab & "低"
            End If
            If .Sensitivity = olConfidential Then
                Print #1, "秘密度:" & vbTab & "社外秘"
            End If
            If .Sensitivity = olPersonal Then
                Print #1, "秘密度:" & vbTab & "個人用"
            End If
            If .Sensitivity = olPrivate Then
                Print #1, "秘密度:" & vbTab & "親展"
            End If
            If .Categories <> "" Then
                Print #1, ""
                Print #1, "分類項目:" & vbTab & .Categories
            End If
            Print #1, ""
            Print #1, .Body
            Print #1, ""
        End With
    Next
    Close #1
End Sub

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

広告

コメントを残す

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

WordPress.com ロゴ

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

Twitter 画像

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

Facebook の写真

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

Google+ フォト

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

%s と連携中