私は数年前に書いたPowerShellスクリプトを持っています。PowerShellを使用してフォルダ内のすべてのExcelファイルを印刷する
$shell = New-Object -com Shell.Application
$filepath = 'C:\Billing\Clients'
$shell.Namespace($filepath).Items() |
% { $_.InvokeVerb('Print') }
C:\ Billing \ Clientsフォルダには、〜100個のExcelファイルがコピーされます。これらの各Excelファイルは、ファイル名のアルファベット順に印刷する必要があります。
これは今月までうまくいっていました。私は、Excelへのアップデートで変更されたものを推測します。
スクリプトは、同時にすべてのExcelファイルを開いて印刷しようとします。以前はファイルをシリアルで印刷していました。
これは素晴らしいものでした。今では私のシステムは無秩序になり、文書はランダムな順序で印刷されます。
印刷操作を呼び出して、次のファイルで印刷操作を呼び出す前に完了するまで待つ方法については、
ありがとう、スティーブン!あなたのスクリプトは素晴らしい作品です! –
私が仕事をすることができないのは、$ xl.ActivePrinterコマンドだけです。私は$ xl.visibleプロパティの直後に置いて、プリンタ名をExcelにリストされている名前に設定します。成功しません。コントロールパネルでデフォルトのプリンタを手動で設定すると効果的です。 –
プリンタを稼働させました。 $ xl.ActivePrinterコマンドは$ wb.PrintOutの直前にあります。プリンタ名を取得するには、Powershellウィンドウを開き、コントロールパネルのデフォルトとして設定されているプリンタで次のコマンドを実行し、正しい名前を取得します。 $ xl = New-Object -comobject excel.application $ xl.ActivePrinter スクリプトでコピーして使用できる印刷名を印刷します。 –