見出し画像

MS Excel VBO - Extended 紹介

みなさんこんにちは。ドリームアイランドです。
完全に夏が終わりましたね。夏休みの取りどころが無かったので、休みどころを探しています。ま、休んでも行くところ無いんですけどね!

さて、

「Blue Prismはパスワード付きのExcelは操作できないの?」

というコメントをいただいた昨今、
そんなもんMS Excel VBO(※)に入っとるに決まっとろーもん…と思って覗いてみると
「無いじゃん…」(普通のOpen Workbookアクションしかない)

※スクリーンショットはインストール時にVBOフォルダ(C:\Program Files\Blue Prism Limited\Blue Prism Automate\VBO)に入っているMS Excel VBO

え、じゃあまさか本当にパスワード付きのExcelは操作できない………???

・・・

なーーーんてことあるわけないじゃないですか。

パスワード付きのExcelを操作する方法は私の思いつく限りで4つあります。

①Excelの動作を可視化(Visible)にし、GUI操作でID・パスワードを入力する

一番単純な方法ですが、UI変更に影響を受けやすく動作環境の負荷状況によって動作が遅くなったりしてエラーになることもあるため、あまりオススメしません。

②Open Workbookのコードを修正する

Open Workbookステージを開き

コードを

name = ExecWithTimeout(Timeout, "Open Workbook",
Function()
   Dim instance = GetInstance(handle)
   Dim workbooks As object = GetProperty(instance, "Workbooks")
   Dim wb As Object = Invoke(workbooks, "Open", filename)
   Invoke(wb, "Activate")
   Return wb.Name
End Function)

↓引数にパスワードが入る形に5行目を修正

name = ExecWithTimeout(Timeout, "Open Workbook",
Function()
   Dim instance = GetInstance(handle)
   Dim workbooks As object = GetProperty(instance, "Workbooks")
   Dim wb As Object = Invoke(workbooks, "Open", filename, 0, False, vbNull, password)
   Invoke(wb, "Activate")
   Return wb.Name
End Function)

またはこの書き方でも書けます

name = ExecWithTimeout(Timeout, "Open Workbook",
Function()
   Dim instance = GetInstance(handle)
   Dim workbooks As object = GetProperty(instance, "Workbooks")
   Dim wb as Object = workbooks.Open(Filename:=filename, Password:=password)
   Invoke(wb, "Activate")
   Return wb.Name
End Function)

あとは入力のデータアイテムにpassword(パスワード型)を設定し、プロセスから呼ぶだけです。

③MS Excel VBO Extendedを使う

さて、今日の本題です。

手っ取り早くパスワード付きExcelを開けるVBOが無いの?
あるんです!

MS Excel VBO - Extended
https://digitalexchange.blueprism.com/dx/entry/9648/solution/ms-excel-vbo---extended

Extendedというぐらいなので、MS Excel VBOに入っていないアクションがたくさん入っています。
その中に
Open Workbook (Password Protected / Read Only)
というアクションがあり、これを使うことでパスワードがかかっているExcelファイルを読み取ることが可能です。
また、パスワードには読み取り用パスワード、編集用パスワードがありますが、このアクションではどちらも対応しています(入力するデータアイテムによって切り替えることができます)。

MS Excel VBOの中身を深く知りたい、カスタマイズしたいという際には②の選択肢も良いですが、手軽に使えるVBOを取り入れたいという場合には③を使ってみるのも良いかと思います。
他にも通常のExcel VBOに無いアクション(セル結合、行列の追加削除、罫線の設定など)も数多く存在し、Excelを使った業務を実行する上で便利な機能が詰まっています。

④MS Excel VBOの最新版をインポートする

すいません、実はこの記事を書いている途中に発見したのですが、Blue Prism DXに上がっているMS Excel VBOの最新版のOpen Workbookにpassword引数が追加され、パスワードがかかっているExcelを開けました。

Function for MS Excel VBO
https://digitalexchange.blueprism.com/dx/entry/3439/solution/ms-excel-vbo

便利なExcel VBO Extendedを紹介したいがために書き始めた記事でしたが、パスワード付きExcelを開くための対応については、通常版の最新版インポートが一番早いかもしれないですね。

他にも便利なアセットがBlue Prism DXにはあがってますので、また紹介していきたいと思います~。

ドリームアイランド