UiPath Excel 処理 VBAの呼び出し アクティビティ

2019年12月4日

「VBAの呼び出し」はマクロ(VBAのコード)が

単体でテキストファイルに保存されている場合に

それを起動するためのアクティビティです。

これにより既存のマクロ資産を

有効活用することが可能です。

なお類似機能の「マクロを実行」アクティビティは

ブックとマクロが同じファイルの場合に使用しますが、

このアクティビティは別々の場合に使用します。

アクティビティの使い方

Excelの設定

事前にExcelの設定を確認する必要があります。

「ファイル-オプション」で「Excelのオプション」を開き、

「セキュリティセンター」より

「セキュリティーセンターの設定」を開きます。

「ファイル-オプション」で「Excelのオプション」を開き、「セキュリティセンター」より「セキュリティーセンターの設定」を開く図解

「マクロの設定」より

「VBAプロジェクトオブジェクトモデルを信頼する」を

ONにします。

「マクロの設定」より「VBAプロジェクトオブジェクトモデルを信頼する」をONにする図解

Uipathの設定

まず「Excel アプリケーション スコープ」を

設置しブックのパスにVBAを動作させるファイルを指定します。

そして「Excel アプリケーション スコープ」の中に

「VBAの呼び出し」をドラッグします。

ここで指定するブックは通常ブック(xlsx)でも可能です。

マクロ有効ブック(xlsm)である必要はありません。

まず「Excel アプリケーション スコープ」を設置しブックのパスにVBAを動作させるファイルを指定する図解

そして必要なプロパティを設定していきます。

プロパティ設定のキャプチャ

追加で設定する必要のある項目は

「コードファイルのパス」と

「エントリメソッド名」のみで

引数も戻り値もないVBAであれば

それだけで動作します。

コードファイルの中身は↓のようになっています。

Public Function Main(address as string , value as string)
    Range(address).Value = value
    
    Main = "完了"
End Function

一つ目の引数に編集対象セルを指定し、

二つ目の引数に設定値を指定します。

System.Collections.Generic.IEnumerable型変数で指定しますが、

今回は{“A1″,"VBA実行"}とリテラルで指定します。

これによりA1セルにVBA実行と入力されます。

最後に戻り値として「完了」を返し、

その戻り値を出力値プロパティのObject型変数に指定し

メッセージボックスで表示します。

メッセージボックスアクティビティのキャプチャ

このツールを空のブックに対して実行すると

一つ目の引数のセルに二つ目の引数の値が設定され

書き込み先ブックの結果キャプチャ

戻り値である"完了"がメッセージボックスに表示されます。

メッセージボックスのキャプチャ

プロパティ

共通

表示名を設定します。

表示名のキャプチャ

表示名はデザイナーパネルに反映されます。

デザイナーパネル上の表示例のキャプチャ

複数ある場合はどのようなマクロを起動するかを

記述すると良いですが、

通常表示ではコードファイル名と

エントリメソッド名が表示されるため

それがどんな処理をしているかを

反映した名前になっていれば

表示名は変える必要性は少なくなります。

入力

入力のキャプチャ
エントリメソッドのパラメーターエントリメソッドに引数がある場合、
System.Collections.Generic.IEnumerable型で指定します。
引数の順番で指定します。
{“A1″,"VBA実行"}のようにリテラル(固定値)で
指定することも可能です。
エントリメソッド名実行するメソッド名を指定します。
コードファイルのパスVBAのコードが記述されたテキストファイルを指定します。
basファイルを指定していますが、
VBAのコードであればtxtなど他の拡張子でも構いません。

出力

エントリメソッドがFunctionの場合、

処理結果(戻り値)が存在します。

そ場合は受け取り用の変数を

Object型で指定します。

出力のキャプチャ
受け取り用変数のキャプチャ

その他

UiPathのログに引数や変数の値が

表示されるかを指定します。

機密性の高い情報を取り扱う場合にのみ

チェックする必要があります。

プライベートのキャプチャ

関連記事

Excel アプリケーションスコープ アクティビティ