フォルダーに含まれるメールに添付されている PDF をすべて印刷するマクロ


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


こんばんわ。
特定の受信トレイに仕分けされたメールの添付ファイル(pdf)を、指定のプリンタで自動で印刷する方法を教えて頂きたいです(今は日に150-200件のメールの添付ファイルを、右クリック⇒印刷して対応しています)。
よろしくお願い致します。

OS:windows7 office2013


以前、仕訳ルールでメールの本文と PDF のみ印刷するマクロとして公開したマクロを応用すると、特定のフォルダーにあるすべてのメールの PDF ファイルを印刷することができます。
マクロは以下のようになります。
なお、このマクロで印刷のために保存された 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 PrintAllPDFInCurrentFolder()
     Dim fldCurrent As Folder
     Dim objItem As Object '
     ' 現在選択されているフォルダーを取得
     Set fldCurrent = ActiveExplorer.CurrentFolder
     For Each objItem In fldCurrent.Items
         ' アイテムがメールだった場合だけ印刷
         If TypeName(objItem) = "MailItem" Then
             PrintPDFAttach objItem
         End If
     Next
End Sub
'
Private Sub PrintPDFAttach(ByVal objItem As MailItem)
     On Error Resume Next
     Const ATTACH_PATH = "c:\temp\" ' 添付ファイルを保存するフォルダー
     Dim objAttach As Attachment
     Dim strFileName As String
     Dim c As Integer
     ' 添付ファイルの印刷
     Dim objFSO 'As FileSystemObject
     Set objFSO = CreateObject("Scripting.FileSystemObject")
     For Each objAttach In objItem.Attachments
         If LCase(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

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

広告

コメントを残す

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

WordPress.com ロゴ

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

Google フォト

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

Twitter 画像

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

Facebook の写真

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

%s と連携中