Outlook 研究所

2016年10月29日

仕訳ルールでメールの本文と PDF のみ印刷するマクロ


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


毎回、こちらのサイトにとてもお世話になっております。どうしてもお力添えいただきたく質問させていただきました。
・ 仕様環境 Win10(32bit) OUTLOOK2010
マクロは使用せず、仕分けルールと印刷設定を利用しまして、メールを受信したら添付ファイルごと自動で全て印刷をしております。
この際、【メール本文+PDF】は印刷したいのですが、それ以外の添付ファイル(doc、docx、xls、xlsx、ppt、pptx、zip、csv、exe 等)は印刷しないで無視するように設定できないものか苦慮しております。
このような都合の良いマクロを作りたいと考えているのですが、何か良い方法はございますでしょうか。



ルールの指定では特定の種類のファイルだけ印刷しないというようなことはできないので、本文の印刷と添付ファイルが pdf のときだけ保存して印刷をするというマクロを作成し、それをルールの条件として呼び出すことでご要望の動作ができると思います。
以下のマクロを設定し、ルールの条件で [スクリプト] としてマクロの名前を指定してください。

' ここをトリプルクリックでマクロ全体を選択できます。
' 以下はソースの先頭に記載する必要があります。
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
                (ByVal hwnd As Long, ByVal lpszOp As String, _
                 ByVal lpszFile As String, ByVal lpszParams As String, _
                 ByVal LpszDir As String, ByVal FsShowCmd As Long) _
                 As Long
'
Public Sub PrintBodyAndPDFAttach(ByRef objItem As MailItem)
    On Error Resume Next
    Const ATTACH_PATH = "c:\temp\" ' 添付ファイルを保存するフォルダー
    Dim objAttach As Attachment
    Dim strFileName As String
    Dim c As Integer
    ' 本文を印刷
    objItem.PrintOut
    ' 添付ファイルの印刷
    Dim objFSO 'As FileSystemObject
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    For Each objAttach In objItem.Attachments
        If objAttach.FileName Like "*.pdf" Then
            ' ファイルが PDF の場合のみ保存して印刷
            c = 1
            With objAttach
                strFileName = .FileName
                While objFSO.FileExists(ATTACH_PATH & strFileName)
                    strFileName = Left(.FileName, InStrRev(.FileName, ".") - 1) _
                        & "-" & c & Mid(.FileName, InStrRev(.FileName, "."))
                    c = c + 1
                Wend
                .SaveAsFile ATTACH_PATH & strFileName
            End With
            '    保存したファイルを印刷する
            ShellExecute 0, "print", ATTACH_PATH & strFileName, 0, ATTACH_PATH, 0
        End If
    Next
End Sub

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

1件のコメント »

  1. こんにちは。まさしく探していたマクロなのですが、添付がzipファイルだった場合、解凍できるコードを足すことはできないでしょうか。

    コメント by 匿名 — 2016年12月2日 @ 10:47 AM | 返信


RSS feed for comments on this post. TrackBack URI

コメントを残す

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

WordPress.com ロゴ

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

Twitter 画像

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

Facebook の写真

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

Google+ フォト

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

%s と連携中

WordPress.com Blog.

%d人のブロガーが「いいね」をつけました。