表示中のフォルダーのメールを PDF でエクスポートするマクロ


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


いつも参考にしております。
Windows7 Outlook2010使用です。
メールをPDF形式で保存することになり、数百通あるので、Acrobat の機能である「PDFMaker」を利用しようとしたのですが、Acrobat9.0 ではOutlook2010 にその機能は使えないことがわかりました。
特定のフォルダに入れたメール数百通を、PDFに一括変換することはマクロで可能なのでしょうか?
調べていても類似した件がなく、行き詰っております


Outlook 自体には PDF でメッセージをエクスポートする機能はありません。
しかし、Word には PDF でエクスポートする機能があるため、いったんメッセージを Word で開ける RTF ファイルとして保存し、それを Word で PDF にエクスポートすることで実現は可能です。

マクロは以下のようになります。
Outlook で表示中のフォルダーのメールをすべて PDF としてエクスポートします。

' ここをトリプルクリックでマクロ全体を選択できます。
Public Sub ExportCurrentFolderToPDF()
    Const EXPORT_FOLDER = "c:\pdf" ' 保存先フォルダー
    Const wdExportFormatPDF = 17
    Dim strFileBase As String
    Dim strFileRTF As String
    Dim strFilePDF As String
    Dim appWord As Object 'Word.Application
    Dim fldCurrent As Folder
    Dim objMail As Object 'MailItem
    Dim docRTF As Object 'Word.document
    Dim i As Integer
    strFileBase = Environ("TEMP") & "\msg"
    ' Word Application オブジェクトの生成
    Set appWord = CreateObject("Word.Application")
    ' 表示中のフォルダーを取得
    Set fldCurrent = ActiveExplorer.CurrentFolder
    For i = 1 To fldCurrent.Items.Count
        Set objMail = fldCurrent.Items(i)
        If objMail.MessageClass = "IPM.Note" Then
            ' 一時ファイルのファイル名の作成
            strFileRTF = strFileBase & Right("0000" & i, 4) & ".rtf"
            ' 保存先 PDF ファイル名の生成
            strFilePDF = EXPORT_FOLDER & "\msg" & Right("0000" & i, 4) & ".pdf"
            ' メールを RTF ファイルとして保存
            objMail.SaveAs strFileRTF, olRTF
            ' 保存した RTF ファイルを Word で開く
            Set docRTF = appWord.Documents.Open(strFileRTF)
            ' Word で PDF として保存
            docRTF.ExportAsFixedFormat strFilePDF, wdExportFormatPDF
            docRTF.Close
            Set docRTF = Nothing
            ' RTF ファイルの削除
            Kill strFileRTF
        End If
    Next
    ' Word を終了
    appWord.Quit
End Sub

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

広告

表示中のフォルダーのメールを PDF でエクスポートするマクロ」への1件のフィードバック

  1. Windows7 Outlook2010 使用です。
    上記マクロを実行し大変助かっております。ありがとうございます。
    質問なのですが現在のOutlook2010で送受信したメールには有効なのですが、
    Outlook Expressから移行してきた古いメールには使えませんでした。
    (古いメールは開封済ですが開封済みになっていない状態です)
    古いメールには使用できないのでしょうか?
    古い未開封メールをPDF化し整理したいのですが、上記のようなマクロはできますでしょうか?
    可能でしたらお力を貸していただければと思いコメントしました。

コメントを残す

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

WordPress.com ロゴ

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

Twitter 画像

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

Facebook の写真

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

Google+ フォト

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

%s と連携中