Outlookで添付ファイルを自動印刷するときは、従来版と新しいOutlookの対応を分け、送信者の条件、添付だけの指定、印刷先、処理済みの記録を確認します。
特定の取引先から届く請求書などを自動で印刷したい場合、Windowsの従来版Outlookでは印刷用アドインやVBAを使う方法があります。ただし、新しいOutlookにはVBA、COMアドイン、従来のOutlook Object Modelの対応がありません。同じ手順を移しても動作しないため、最初に使っているOutlookと、自動化したい範囲を確認してください。
Outlookの種類と印刷する対象で方法を選ぶ
| 環境・目的 | 選べる方法 | 確認する条件 |
|---|---|---|
| 従来版Outlookで添付だけを手動印刷 | 添付のQuick Print、または関連アプリで印刷 | Quick Printは既定のプリンターを使用。ファイル形式によっては開く操作が必要 |
| 従来版で特定の送信者の添付を自動印刷 | 対象フォルダーへの振り分けと印刷アドイン、または個別開発 | Outlookの起動、対応ファイル、プリンター、二重印刷を検証 |
| 新しいOutlook・Web版 | 添付をプレビューして印刷、またはダウンロードして関連アプリで印刷 | 従来版のVBAやCOMアドイン、Quick Printを前提にしない |
| PCを閉じている間も業務として印刷 | メール取得・保存と印刷サービスを分けて構成 | クラウドの保存処理だけでは実機のプリンターへ出力されない |
メール本文の印刷、添付だけの印刷、メールと添付の両方の印刷は別の設定です。ルールに「印刷」があることだけで、希望する添付ファイルがすべて自動印刷されるとは判断できません。まず同じPDFを手動で印刷できるか確認し、その後に受信条件と自動処理を追加します。
手順1:自動化する前に添付を1件手動で印刷する
従来版Outlookの場合
- 印刷したい添付が付いたメールを開き、添付のメニューから「Quick Print」を試す。日本語版ではクイック印刷など、表示に合わせて選ぶ。
- 既定のプリンターに正しい用紙サイズで1部出るか確認する。別のプリンターを使う場合は添付を関連アプリで開き、そこで印刷先を選ぶ。
- 本文と添付を両方出したい場合に限り、メールの「ファイル」→「印刷」→「印刷オプション」で「添付ファイルを印刷する」を確認する。添付だけが目的なら本文の出力設定とは分ける。
「添付ファイルを印刷する」の設定は、その後のメール印刷にも引き継がれます。不要になったらチェックを外してください。Quick Printの添付は既定のプリンターへ送られ、メール本文側で別のプリンターを選んだ場合も、添付の出力先が同じになるとは限りません。
新しいOutlook・Web版の場合
添付のメニューからプレビューを開いて印刷するか、開く/ダウンロードしてPDF・Wordなどの関連アプリで印刷します。新しいOutlookでQuick Printが見つからなくても、従来版と同じ機能が隠れているとは限りません。プレビューに対応しない形式は、保存して対応アプリで開いてください。
手順2:特定の送信者を印刷対象フォルダーへ振り分ける
- 従来版Outlookで「ファイル」→「仕分けルールと通知の管理」から、新しい受信ルールを作る。既存メールを右クリックして「ルール」→「ルールの作成」から始める方法もある。
- 送信者に取引先の実際のメールアドレスを指定する。必要に応じて請求書などの件名条件を追加し、専用の「印刷対象」フォルダーへ移動する。
- まずは印刷を有効にせず、対象メールだけがフォルダーへ入ることを確認する。対象外の送信者や添付なしのメールも試す。
- 既存メールへルールを実行する場合、過去の請求書までまとめて印刷されないよう、監視を止めてから対象範囲を決める。
送信者の表示名が同じでもメールアドレスは異なることがあります。また、差出人の条件は業務上の振り分けであり、添付の内容が安全であることを保証するものではありません。未知のファイル、実行形式、マクロ付き文書を一律で印刷対象にしない運用にします。
手順3:印刷アドインで「添付だけ・PDFだけ」を指定する
実在する製品例として、MAPILabのPrint Tools for Outlookには、メール/添付の選択、形式の絞り込み、プリンターの指定、Folders Watchによるフォルダー監視があります。ここでは従来版Outlookで、振り分けたフォルダーのPDF添付だけを処理する構成を例にします。購入前に試用版で自分のOutlook、PDFアプリ、プリンターとの組み合わせを確認してください。
- メーカーの対応環境を確認してアドインを導入する。公式の互換性一覧にMicrosoft 365向けOutlook等があっても、新しいOutlookへの対応を意味しない。個別の製品版や構成が一覧にない場合は販売元に確認する。
- MAPILabのリボン/メニューから、まず選択したメールの添付だけを手動印刷する。プリンター、部数、用紙、向き、本文を含めない設定を確認する。
- Folders Watchで「印刷対象」フォルダーを指定し、設定でメール本文ではなく添付を選ぶ。許可する形式をPDFなど業務で必要な種類に限定する。
- 新しいテストメールを受信し、振り分け→添付だけの出力→重複の有無を確認する。複数添付や同名ファイルでも期待通りに処理されるかを見る。
- 停止用に監視設定の場所を控える。予期しない大量印刷が起きたら監視を止め、印刷キューの不要なジョブを確認して取り消す。
画面の項目名は製品版によって変わります。料金は契約・更新条件を含めて販売元で確認してください。フォルダー監視と別の印刷ルールを同時に使うと同じメールを二度処理する可能性があるため、同じ対象に複数の自動印刷経路を作らずに検証します。
従来版Outlookのカスタムアクションを使うルールは、そのアドインがあるPCでOutlookが起動している間に動作します。PCの電源断、スリープ、Outlookの終了、プリンターのオフラインでも受信時に必ず印刷される仕組みとは扱わないでください。復帰後の未処理分をどう確認するかも決めておきます。
VBAで作る場合:受信イベントだけでは自動印刷は完成しない
VBAは従来版Outlook向けです。Application_NewMailExは新着アイテムのイベントであり、添付を印刷するための完成済み関数ではありません。現在のイベントはアイテムごとに1回発生し、引数はそのアイテムのEntry IDです。古い例にある、複数IDがカンマで渡されるという前提はそのまま適用しないでください。
取得したアイテムがMailItemかを確認し、実際の送信者アドレス、添付の種類、保存先を判定してから印刷処理につなぎます。メール以外のMeetingItem等も到着します。Exchangeでは送信者がSMTPアドレス表記とは限らないため、SenderEmailAddressと文字列を比べるだけで全アカウントに対応するとは言えません。
- イベントが発生した時刻と対象メールのIDを記録し、対象外・保存成功・印刷送信・失敗を区別する。
- 添付のファイル名をそのまま同じ保存先へ使わず、メール・添付ごとに衝突しない一時フォルダーを作る。本文内の画像や対象外形式を除外する。
- 印刷アプリの実際のコマンド、形式への対応、終了コード、出力先を確認する。架空のYourPrinter.exeを置いた例では印刷処理は動作しない。
- 同じメールの再処理を防ぐ記録と、失敗した添付だけを再実行する仕組みを設計する。アプリの起動成功だけを紙の出力成功として記録しない。
NewMailExはクライアント側ルールの処理前に発生し、ルールや迷惑メール判定による移動が非同期で起きる場合があります。ExchangeではOutlook起動前に届いていたメールや、起動直後に同期したメールをこのイベントだけで網羅できません。既存メールを確認する別の処理が必要です。また、このPrivateイベント手続きを、ルールの「スクリプトを実行」の一覧から選ぶ通常のマクロと混同しないでください。
マクロはコードを確認し、管理者の方針に従って通知付きの許可や信頼できる署名を利用します。「すべてのマクロを有効にする」を常用する必要はありません。Outlookの自作マクロを許可することと、受信したWordやExcelの添付マクロを許可することも別です。
新しいOutlookで自動化したい場合は取得・保存・印刷を分ける
Microsoft 365の業務メールでは、Power AutomateのOffice 365 Outlookコネクタを使って受信と添付取得を処理する設計があります。OutlookをPCで起動して受信イベントを待つ方法とは異なります。Gmailや個人用Outlook.comを同じコネクタで扱えるという意味ではないため、メールサービスに合うコネクタを選んでください。
- 新着メールのトリガーで対象のメールボックスとフォルダーを指定し、送信者・件名等の条件を絞る。ルールで別フォルダーへ移動する場合は、監視するフォルダーの違いに注意する。
- 添付のメタデータからPDF等の対象を選び、Get Attachment (V2)でメールIDと添付IDに対応する内容を取得する。Include AttachmentsをNoにして取得を分ける方法は、大量受信時の添付ダウンロード待ちを避ける設計にも使える。
- 権限を限定した確認用の保存先へ格納する。保存成功、処理中、印刷済み、失敗を分け、同じIDを再処理しないよう管理する。
- 実機へ出力する印刷サービスやデスクトップ処理を別に用意し、対応形式、認証、利用権、常時稼働の条件を確認する。OneDrive等へ保存するだけでは自動印刷は完了しない。
メールの移動・保護・サイズなどによりトリガーで扱えない場合もあります。クラウド処理を使っても、すべての受信を即時に印刷できる保証にはなりません。受信ログと保存数、印刷ジョブを照合できる運用にします。
従来版OutlookをタスクスケジューラやWindowsサービスからCOMで立ち上げれば、無人運転が簡単に完成するとも言えません。MicrosoftはOfficeの非対話環境からの自動化を推奨・サポートしておらず、認証画面やダイアログで停止する可能性を説明しています。業務で常時印刷する場合は、対応する印刷サービスの構成として検証してください。
印刷されない・二重に出る場合の確認順
| 症状 | 最初に見る場所 | 次の確認 |
|---|---|---|
| 対象メールが専用フォルダーへ入らない | 送信者の実アドレス、件名条件、ルール順 | コピーと移動、別メールボックス、例外条件を確認 |
| 手動印刷も失敗する | PDF等を関連アプリで開いた印刷 | プリンターの状態、キュー、用紙、ファイルの印刷制限を確認 |
| 手動は成功するが監視では出ない | Outlookとアドインの稼働、監視フォルダー | 対象形式、本文/添付の選択、受信時刻、製品の対応を確認 |
| 二重に出る | 印刷ルールとFolders Watchの重複 | コピー先も監視していないか、再試行と処理済み記録を確認 |
| 本文や署名画像まで出る | メール/添付の指定と形式フィルター | 添付だけにし、必要なPDF等に対象を限定 |
| 別のプリンターへ出る | Quick Printで使う既定のプリンター | アドイン・印刷アプリ側の指定と区別して確認 |
本番にする前の確認項目
対象メール1件、対象外の送信者、添付なし、複数PDF、同名添付、印刷できないファイルを試します。次にOutlookの再起動、PCのスリープ復帰、プリンターの一時停止後に、未処理や二重出力が起きないか確認してください。確認できた件数と形式を記録してから対象を広げます。
最初から全受信メールを印刷する設定にせず、送信者と業務フォルダー、ファイル形式を限定すると原因を追いやすくなります。印刷済みの紙だけではメールの処理状態を追えないため、ログと未処理の確認方法を合わせて用意してください。
公式資料・製品の一次情報
- Microsoft:添付の印刷とQuick Printの制限
- Microsoft:新しいOutlookと従来版の機能比較
- Microsoft:ルールの作成とクライアント側処理
- MAPILab:Print Tools for Outlookの機能
- MAPILab:Print Toolsの対応環境
- MAPILab:Folders Watchと添付だけの印刷設定
- Microsoft:NewMailExの動作と取りこぼし条件
- Microsoft:Exchange送信者のSMTPアドレス取得
- Microsoft:マクロの許可と署名の設定
- Microsoft:Office 365 Outlookコネクタと添付取得
- Microsoft:Officeの非対話・無人自動化の制約

コメント