はじめに
Blue Prismで実装していると、「ああ、これマクロでやらせたほうがいいな」と思う処理は結構あります。
VBOで作っても再利用性が望めないようなパターン。
そんな時はRPAを補助するマクロで賄っています。
最終的なアウトプットがユーザーが求めるファイル拡張子がマクロ無し(.xlsx)だったとき保存が少し面倒。
まあ保存すらマクロでやればいいんでしょうが、できればBlue Prismで賄える機能はRPA側で実装したいとろろ。
Blue Prism提供オブジェクトMS Excel VBOを巡るRPA化の旅がはじまる
まあExcel操作系だしね。
MS Excel VBOを探してみると――
ありました。
MS Excel VBOにSave Workbook Asが。
これで終了。
乙!
といかないのが、悩ましい。
たとえば元のファイル形式がxlsmで、それをxlsxで保存しようとした場合――
エラー
Excelファイル’XXXXXXXxlsx’を開くことができません。ファイル形式またはファイル拡張子が正しくありません。
うぅーん
MS Excel VBOをExtendしてやるッ!
Blue Prism のMS Excel VBOをExtendして、元の拡張子と異なるExcelを保存する
ということで、MS Excel VBOの「Save Workbook As」の中身をみてみます。
お! ワークブックオブジェクトのSaveAsやってますね。
ディスプレイアラートのオンオフまで。
ふむふむ、SaveAsの第一引数以降が省略されていますね。
SaveAsはオプショナルな第2引数にファイルフォーマットを渡すことで、ファイル形式が指定できます。
詳しくはリンク先のMS謹製のリファレンスをご参照ください。
そして、ファイルフォーマットはXlFileFormat という列挙体で指定できます。
今回は引数に列挙体が持っている値を渡して、ファイルフォーマットの指定をしてやりましょう。
例えば、CSVファイルであれば6、xlsxであれば51といった具合に。
ということでやっていきましょう
いざ実装
まずはSave Workbook As を複製します。
▼開始ステージをクリックして、引数を追加しましょう。ファイルフォーマットを数値で受けます
▼コードステージの入力でファイルフォーマットを受けて
コードステージを修正
'wb.SaveAs(filename) wb.SaveAs(filename,FileFormat)
おわりに
拡張子こだわる人いるよね。
後続が影響してるのかもしれないけどさ。
マジめんどくさい。