本文のみの一括印刷しかできませんが、WSH(Windows Script Host) VBScriptでスクリプトを書いてみました。よろしければお試し下さい。Windows XP Pro SP2でテストしています。
【準備】
(1)下のスクリプトをOEPrint.vbsなどの名前を付けて保存し、デスクトップに置いておきます。
(2)OE(Outlook Express)の印刷するフォルダ名を指定しておきます。下のスクリプトでは「受信トレイ」にしており、変更する場合は書き換えて下さい。
【使い方】
(1)OEを起動し、受信トレイの一覧画面を表示します。
(2)スクリプトをダブルクリックして実行します。
(3)印刷するメールの件数の入力要求に対し、件数を入力します。
(4)実行確認のメッセージが出ますので、印刷する先頭のメールを選択し、OKボタンを押します。一覧順にメールが開かれて印刷されます。
(5)全ての印刷が終わると終了メッセージが出ます。
【注意事項】
(1)現れる画面を想定してキー操作を行っているため、印刷中はパソコンに触れないで下さい。
(2)印刷のオプションは指定できませんので印刷前に確認して下さい。
(3)プリンタのモニタ画面などが出るとキー操作が乱れるため、抑止して下さい。私の環境ではキヤノンのステータスモニタが現れたので抑止しました。その他、裏で動くプログラムは停止しておくのが好ましいです。
実際の印刷のテストは小さなメール数通でしか行っていません。想定外の動作がありましたらご容赦下さい。例えば巨大なメールを印刷するとどうなるか、印刷中に新しいメールを受信してしまったらどうなるか、など。最初は2-3通で練習し、慣れるまでは10通くらいの単位で印刷するのが無難だと思います。
' OEPrint.vbs - Outlook Express メール本文を一括印刷する
'
' 印刷するフォルダの一覧を開いて本スクリプトを実行して下さい。
set WshShell = WScript.CreateObject("WScript.Shell")
const WinTitle = "受信トレイ - Outlook Express" '★フォルダ名を指定する
const IDOK=1, MB_OKCANCEL=1, MB_TOPMOST=&H40000
dim ix, Lim
Lim = InputBox("印刷するメールの件数を指定して下さい。", "件数の入力", 10)
if Lim="" then
WScript.Quit()
end if
if not WshShell.AppActivate(WinTitle) then
WScript.Echo (WinTitle+" を開いてから実行して下さい。")
WScript.Quit()
end if
if WshShell.Popup(Lim&" 通のメールを印刷します。"&vbLf&vbLf& _
"印刷する先頭のメールを選択して下さい。"&vbLf& _
"実行しますか?" ,0,"確認", _
MB_OKCANCEL+MB_TOPMOST)<>IDOK then
WScript.Quit()
end if
WshShell.AppActivate(WinTitle)
WScript.Sleep 1000
WshShell.SendKeys "%" ' 選択されたメールを開く
WshShell.SendKeys "F"
WshShell.SendKeys "O"
WScript.Sleep 1000
for ix=1 to Lim
WshShell.SendKeys "%" ' 印刷ダイアログを開く
WshShell.SendKeys "F"
WshShell.SendKeys "P"
WScript.Sleep 1000
WshShell.SendKeys "{ENTER}"
WScript.Sleep 3000 '★印刷サイズが大きい場合はもっと長く?
WshShell.SendKeys "^>" ' 次のメールを開く
WScript.Sleep 1000
next
WshShell.SendKeys "{ESCAPE}" ' メールを閉じる
WshShell.Popup "印刷が終わりました。",0,"終了",MB_TOPMOST
' ここまで
お礼
ヒィ~ッ!!! わざわざスクリプトを書いて下さるとわっ! お礼の言いようがございません。 早速やってみまっす! 本当にありがとうございました!_| ̄|○ 宜しくお願いします。