はじめに
業務の中で処理の最後にExcelを印刷してエビデンスとするようなものは結構あります。
ペーパーレス化の波に乗れていないようですが、今は我慢して自動化……
はやくペーパーレス化の提案をしたいところ……
ということで、今回はBlue Prismで印刷をする処理を実装。
あわせて、「PDF化もできますよ。エビデンスとして保管するだけであれば、PDF保管でもいいのでは」という交渉のためのPDF化処理もおまけしておきましょう。
MS Excel VBOに印刷処理はあるか
無駄な開発をしないためにまずは、VBOを調べます。
ふむふむ
ふむふむ
まあ印刷なんてね、RPAではなく各業務で必要であればやってくれというレベルだしね。
そうだよね。
Blue PrismでExcelのシートを印刷する
VB.NETで印刷する処理と言えば、シートオブジェクトのPrintOutです。
では、Blue PrismのMS Excel VBOで似たような処理をしてそうなものを考えると「Activate Worksheet」が近い処理をしています。
「Activate Worksheet」では単純にシートをアクティブにしているだけです。
その処理をちょっと借用しつつExtendしましょう。
' If sheetexists then ws.Activate() ' アクティベートしている個所を、プリントアウトに変更する If sheetexists then ws.PrintOut()
これで印刷できます。
今回は対象となるシートのみの印刷でしたが、ブック全体の印刷もできそうですな。
Blue PrismでExcelのシートをPDFにして保存する
では次に発展的に、もう紙なんてだしたくないよぉと提案するための施策。
PDF化についても考えてみました。
PDFにして保存するので、もう紙だしファイリングいらないよ、とアピールしまっせ。
PDF化はワークシートオブジェクトのExportAsFixedFormatを使います。
パラメータの意味については上記リンク先を確認してもらえれば一目瞭然。
なんせMS謹製のページ。
' If sheetexists then ws.Activate() ' アクティベートしている個所を、PDF化に変更する ' オブジェクトへの引数にファイルパスの追加も忘れずに。 If sheetexists then ws.ExportAsFixedFormat(Type:=0, _ Filename:=output_pdffilename, _ Quality:=0, _ IncludeDocProperties:=True, _ IgnorePrintAreas:=True, _ From:=Type.Missing, _ To:=Type.Missing, _ OpenAfterPublish:=False)
output_pdffilenameに格納されている保存先にPDFが保存されます。