メインコンテンツへスキップ
 

電子メールがOutlookに到着したときに添付ファイルを自動的に印刷するにはどうすればよいですか?

作者: シルヴィア 最終更新日:2024年09月18日

このチュートリアルでは、VBAスクリプトとOutlookルールを組み合わせて、特定の電子メールがOutlookに到着したときにその添付ファイルを自動的に印刷できるようにする方法を示します。


特定のメールが届いたときに添付ファイルを自動的に印刷する

特定の送信者からの受信メールの添付ファイルを自動的に印刷するとします。 あなたはそれを成し遂げるために次のようにすることができます。

ステップ1:Outlookでスクリプトを作成する

まず、OutlookでVBAスクリプトを作成する必要があります。

1. Outlookを起動し、を押します 他の + F11 キーを同時に開いて アプリケーション向け Microsoft Visual Basic 窓。

2。 の中に アプリケーション向け Microsoft Visual Basic ウィンドウ、ダブルクリック Project1 > MicrosoftOutlookオブジェクト > このOutlookSession を開く ThisOutlookSession(コード) ウィンドウをクリックし、次のコードをこのコードウィンドウにコピーします。

Outlook でメールが届いたときに添付ファイルを自動印刷する手順

VBAコード1:メールが届いたときに添付ファイル(すべての種類の添付ファイル)を自動的に印刷する

Sub AttachementAutoPrint(Item As Outlook.MailItem)
'Updated by Extendoffice 20230223
  Dim xFS As FileSystemObject
  Dim xTempFolder As String
  Dim xAtt As Attachment
  Dim xShell As Object
  Dim xFolder As Object, xFolderItem As Object
  Dim xFileName As String
  On Error GoTo xError
  If Item.Attachments.Count = 0 Then Exit Sub
  Set xFS = New FileSystemObject
  xTempFolder = xFS.GetSpecialFolder(TemporaryFolder)
  xTempFolder = xTempFolder & "\ATMP" & Format(Item.ReceivedTime, "yyyymmddhhmmss")
  If Not xFS.FolderExists(xTempFolder) Then
    MkDir (xTempFolder)
  End If
  Set xShell = CreateObject("Shell.Application")
  Set xFolder = xShell.NameSpace(0)
  For Each xAtt In Item.Attachments
    If IsEmbeddedAttachment(xAtt) = False Then
      xFileName = xTempFolder & "\" & xAtt.FileName
      xAtt.SaveAsFile (xFileName)
      Set xFolderItem = xFolder.ParseName(xFileName)
      xFolderItem.InvokeVerbEx ("print")
    End If
  Next xAtt
  Set xFS = Nothing
  Set xFolder = Nothing
  Set xFolderItem = Nothing
  Set xShell = Nothing
xError:
  If Err <> 0 Then
    MsgBox Err.Number & " - " & Err.Description, , "Kutools for Outlook"
    Err.Clear
  End If
Exit Sub
End Sub

Function IsEmbeddedAttachment(Attach As Attachment)
Dim xItem As MailItem
Dim xCid As String
Dim xID As String
Dim xHtml As String
On Error Resume Next
IsEmbeddedAttachment = False
Set xItem = Attach.Parent
If xItem.BodyFormat <> olFormatHTML Then Exit Function
xCid = ""
xCid = Attach.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x3712001F")
If xCid <> "" Then
    xHtml = xItem.HTMLBody
    xID = "cid:" & xCid
    If InStr(xHtml, xID) > 0 Then
        IsEmbeddedAttachment = True
    End If
End If
End Function

ご注意: このコードは、電子メールで受信したすべてのタイプの添付ファイルの印刷をサポートします。 PDFファイルなど、指定した種類の添付ファイルのみを印刷する場合は、次のVBAコードを適用してください。

VBAコード2:メールが届いたときに、指定した種類の添付ファイルを自動的に印刷します

Sub AttachementAutoPrint(Item As Outlook.MailItem)
'Updated by Extendoffice 20230223
  Dim xFS As FileSystemObject
  Dim xTempFolder As String
  Dim xAtt As Attachment
  Dim xShell As Object
  Dim xFolder As Object, xFolderItem As Object
  Dim xFileType As String, xFileName As String
  On Error GoTo xError
  If Item.Attachments.Count = 0 Then Exit Sub
  Set xFS = New FileSystemObject
  xTempFolder = xFS.GetSpecialFolder(TemporaryFolder)
  xTempFolder = xTempFolder & "\ATMP" & Format(Item.ReceivedTime, "yyyymmddhhmmss")
  If Not xFS.FolderExists(xTempFolder) Then
    MkDir (xTempFolder)
  End If
  Set xShell = CreateObject("Shell.Application")
  Set xFolder = xShell.NameSpace(0)
  For Each xAtt In Item.Attachments
    If IsEmbeddedAttachment(xAtt) = False Then
      xFileName = xAtt.FileName
      xFileType = LCase$(Right$(xFileName, VBA.Len(xFileName) - VBA.InStrRev(xFileName, ".")))
      xFileName = xTempFolder & "\" & xFileName
      Select Case xFileType
        Case "pdf"   'change "pdf" to the file extension you want to print
          xAtt.SaveAsFile (xFileName)
          Set xFolderItem = xFolder.ParseName(xFileName)
          xFolderItem.InvokeVerbEx ("print")
      End Select
    End If
  Next xAtt
  Set xFS = Nothing
  Set xFolder = Nothing
  Set xFolderItem = Nothing
  Set xShell = Nothing
xError:
  If Err <> 0 Then
    MsgBox Err.Number & " - " & Err.Description, , "Kutools for Outlook"
    Err.Clear
  End If
  Exit Sub
End Sub

Function IsEmbeddedAttachment(Attach As Attachment)
Dim xItem As MailItem
Dim xCid As String
Dim xID As String
Dim xHtml As String
On Error Resume Next
IsEmbeddedAttachment = False
Set xItem = Attach.Parent
If xItem.BodyFormat <> olFormatHTML Then Exit Function
xCid = ""
xCid = Attach.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x3712001F")
If xCid <> "" Then
    xHtml = xItem.HTMLBody
    xID = "cid:" & xCid
    If InStr(xHtml, xID) > 0 Then
        IsEmbeddedAttachment = True
    End If
End If
End Function

ノート:

1. この VBA コードを適用して受信メールの PDF ファイルのみを印刷する前に、まずダウンロードしてインストールする必要があります。 Adobe Acrobat Readerが コンピューターのデフォルトの PDF リーダーとして設定します。
2. ラインで ケース「pdf」、 変更してください 「pdf」 印刷するファイル拡張子に。

3.先に進み、クリックします ツール > 参考文献。 ポップアップで 参照– Project1 ダイアログボックスで Microsoftスクリプトランタイム ボックスをクリックし、 OK

Outlook でメールが届いたときに添付ファイルを自動印刷する手順

4.コードを保存して、 他の + Q を閉じるためのキー アプリケーション向け Microsoft Visual Basic 窓。

ご注意: 確認してください すべてのマクロを有効にする Outlookでオプションが有効になっています。 このオプションは、以下の手順で確認できます。

Outlook でメールが届いたときに添付ファイルを自動印刷する手順
ステップ2:スクリプトを使用するルールを作成する

OutlookでVBAスクリプトを追加した後、特定の条件に基づいてスクリプトを使用するためのルールを作成する必要があります。

1. [ホーム]タブに移動し、[ キャンペーンのルール > ルールとアラートを管理する.

Outlook でメールが届いたときに添付ファイルを自動印刷する手順

2。 の中に ルールとアラート ダイアログボックスで 新しいルール ルールを作成するためのボタン。

ヒント: Outlookに複数の電子メールアカウントを追加した場合は、でアカウントを指定してください このフォルダに変更を適用します ルールを適用するドロップダウンリスト。 それ以外の場合は、現在選択されているメールアカウントの受信トレイに適用されます。

Outlook でメールが届いたときに添付ファイルを自動印刷する手順

3.最初に ルールウィザード ダイアログボックスで 受け取ったメッセージにルールを適用する 会場は ステップ 1 ボックスをクリックし、次にクリックします。 次へ。

Outlook でメールが届いたときに添付ファイルを自動印刷する手順

4番目に ルールウィザード ダイアログボックスでは、次のことを行う必要があります。

4.1)でXNUMXつ以上の条件を指定します ステップ 1 必要に応じてボックス;
この場合、指定した送信者からの受信メールの添付ファイルのみを印刷したいと思います。 ここで、私はチェックします 人や公共のグループから ボックス。
4.2)下線付きの値をクリックします ステップ 2 条件を編集するためのボックス。
4.3)をクリック 次へ。 スクリーンショットを参照してください:
Outlook でメールが届いたときに添付ファイルを自動印刷する手順

5番目に ルールウィザード ダイアログボックスでは、次のように構成する必要があります。

5.1) ステップ1:アクションセクションを選択しますスクリプトを実行する ボックス;
5.2) ステップ 2 セクションで、下線付きのテキスト「スクリプト」をクリックします。
5.3)オープニングで スクリプトを選択 ダイアログボックスで、上で追加したVBAコードの名前をクリックし、[ OK;
5.4)をクリックします 次へ ボタン。 スクリーンショットを参照してください:
Outlook でメールが届いたときに添付ファイルを自動印刷する手順

ヒント:スクリプトを実行する」オプションがありません ルールウィザード、この記事に記載されている方法に従って表示できます。 Outlookルールで欠落しているスクリプトの実行オプションを復元します.

6.次に別の ルールウィザード 例外を要求するポップアップが表示されます。 必要に応じて例外を選択できます。それ以外の場合は、[ 次へ 選択なしのボタン。

Outlook でメールが届いたときに添付ファイルを自動印刷する手順

7.最後に ルールウィザード、ルールの名前を指定してから、をクリックする必要があります。 終了

Outlook でメールが届いたときに添付ファイルを自動印刷する手順

8.次に、に戻ります。 ルールとアラート ダイアログボックスで、作成したルールがリストされているのを確認できます。 OK ボタンをクリックして、設定全体を終了します。

Outlook でメールが届いたときに添付ファイルを自動印刷する手順

今後、指定者からのメールを受信すると、添付ファイルが自動で印刷されます。


関連記事

OutlookでXNUMXつの電子メールまたは選択した電子メールからの添付ファイルのみを印刷する
Outlookでは、電子メールを印刷できますが、添付ファイルをXNUMXつの電子メールまたはOutlookで選択した電子メールからのみ印刷しましたか? この記事では、この仕事を解決するための秘訣を紹介します。

Outlookで電子メールのメッセージヘッダーのみを印刷する
Outlookで電子メールを印刷すると、電子メールのメッセージヘッダーとメッセージ本文の両方が印刷されます。 ただし、特殊なケースでは、件名、送信者、受信者などを含むメッセージヘッダーを印刷する必要がある場合があります。この記事では、そのためのXNUMXつの解決策を紹介します。

Outlookで指定された/カスタムの日付範囲でカレンダーを印刷する
通常、Outlookの月表示でカレンダーを印刷すると、現在選択されている日付を含む月が自動的に選択されます。 ただし、3か月、半年などのカスタムの日付範囲内でカレンダーを印刷する必要がある場合があります。この記事では、ソリューションを紹介します。

Outlookで写真付きの連絡先を印刷する
通常、Outlookで連絡先を印刷するときに、連絡先の画像は印刷されません。 しかし、時には、その写真との連絡先を印刷する方が印象的です。 この記事では、それを実行するためのいくつかの回避策を紹介します。

Outlookで電子メールの選択を印刷する
電子メールメッセージを受信し、メッセージ全体を印刷するのではなく、選択した電子メールコンテンツを印刷する必要があることがわかった場合、どうしますか? 実際、Outlookは、FirefoxやInternetExplorerなどのインターネットブラウザを使用してこの操作を実行するのに役立ちます。 ここでは、インターネットブラウザを例にとってみましょう。 次のチュートリアルをご覧ください。

「Outlookでの印刷」に関するその他の記事...


最高のオフィス生産性向上ツール

速報: Outlook 向け Kutools がリリース 無償版!

まったく新しいKutools for Outlookを体験してください 70以上の素晴らしい機能を備えた無料版を永久にご利用いただけます! 今すぐダウンロードするにはクリックしてください!

🤖 クツールAI : 高度な AI テクノロジーを使用して、メールの返信、要約、最適化、拡張、翻訳、作成など、メールを簡単に処理します。

📧 自動メール: 自動返信(POP および IMAP で利用可能)  /  メール送信のスケジュール設定  /  メール送信時のルールによる自動CC/BCC  /  自動転送 (高度なルール)   /  あいさつを自動追加   /  複数受信者の電子メールを個別のメッセージに自動的に分割する ...

📨 電子メール管理: メールの取り消し  /  件名などで詐欺メールをブロック  /  重複するメールを削除する  /  高度な検索  /  フォルダーを統合する ...

📁 アタッチメント プロバッチ保存  /  バッチデタッチ  /  バッチ圧縮  /  自動保存   /  自動デタッチ  /  自動圧縮 ...

🌟 インターフェースマジック: 😊もっと可愛くてクールな絵文字   /  重要なメールが届いたら通知する  /  Outlook を閉じる代わりに最小化する ...

???? ワンクリックの驚異: 受信した添付ファイルをすべてに返信する  /   フィッシングメール対策  /  🕘送信者のタイムゾーンを表示 ...

👩🏼‍🤝‍👩🏻 連絡先とカレンダー: 選択したメールから連絡先を一括追加  /  連絡先グループを個別のグループに分割する  /  誕生日のリマインダーを削除する ...

ワンクリックでKutools for Outlookを即座にロック解除—永久に無料待たずに今すぐダウンロードして効率を高めましょう!

Outlook 用の kutools の機能 1 Outlook 用の kutools の機能 2