つまらない仕事はプログラムにやらせよう

ONE HUMAN UNIT

【Blue Prism】Excelをxlsやxlsx、xlsmなどなどいろいろな形式で保存したいって? ではMS Excel VBOをExtendしよう。

はじめに

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 を複製します。

▼開始ステージをクリックして、引数を追加しましょう。ファイルフォーマットを数値で受けます

▼コードステージの入力でファイルフォーマットを受けて

コードステージを修正

おわりに

拡張子こだわる人いるよね。

後続が影響してるのかもしれないけどさ。

マジめんどくさい。

  • B!