dポイントプレゼントキャンペーン実施中!

Outlook2007を利用しています。
受信フォルダの下に仕分けフォルダを作成して条件に合ったメールを仕分け受信するように設定しています。
すべてのメールにTIFFファイルが添付されています。それを、人の手で印刷する処理をしていますが、これを添付ファイルのみ自動印刷するマクロをご教授ください。
宜しくお願いします。

A 回答 (1件)

なかなか回答がつかないようですので、


以下、見様見真似の恥ずかしいコードで恐縮ですが、
とりあえずご参考までに。

動作の概要
 当該メールのすべての添付ファイルを、
 指定された一時フォルダに保存し、
 (サンプルではC:\Documents and Settings\User_Name\デスクトップ\temp)
 関連付けられたアプリケーションで印刷する

Private Declare Function ShellExecute Lib "SHELL32.dll" _
 Alias "ShellExecuteA" _
 (ByVal hWnd As Long, _
  ByVal lpOperation As String, _
  ByVal lpFile As String, _
  ByVal lpParameters As String, _
  ByVal lpDirectory As String, _
  ByVal nShowCmd As Long) As Long

Sub Sample0710270(メール As MailItem)  
 一時フォルダ = "C:\Documents and Settings\User_Name\デスクトップ\temp" 
 For Each 添付ファイル In メール.Attachments
  ファイル名 = 一時フォルダ & "\" & 添付ファイル.DisplayName
  添付ファイル.SaveAsFile (ファイル名)
  Call ShellExecute(lngHwnd, "print", ファイル名, "", "", 1)
 Next 添付ファイル 
End Sub

(WindowsXP/Outlook2003で動作確認)

[仕訳ルールと通知]の[スクリプトを実行する]に、
Sample0710270を登録して動作させることを想定しています。

添付ファイルをいったん保存する必要があるので、
適当なフォルダをあらかじめ用意して
コード中でそのパスを指定しておく必要があります。

TIFFファイルに関連付けられたアプリケーションによっては
うまく動作しないかもしれません。
テスト環境では、TIFFファイルは
"Microsoft Office Document Imaging"に関連付けられています。

「添付ファイルを人の目を介さずフルオートで処理する」という運用は、
なんとなくセキュリティ的にアブナい感じがします。
受信時に直接動作させるのではなく、
受信時には中間フォルダに移動させるだけにし、
目視で確認した上で再度仕訳ルールを適用して
一括して印刷と移動を行うようにした方が安全かと思います。
あるいは、受信時には添付ファイルを保存するだけにして、
エクスプローラ上で複数選択⇒右クリック⇒印刷 とか。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!