UiPath:Access VBAの実行方法「プロセスを開始」(マクロ経由で実行)と終了方法
- UiPathのシナリオで、現在使っているAccessのVBAをそのまま使いたい。
- UiPathにExcelのマクロ実行はあるのに、Accessはないのでどうにか使えないか?
その際に以下の方法でVBAを実行できるようになったので、その方法を記事にしておきます。
◆AccessVBAの実行方法
結論から言うと、VBAは直接は実行できませんが、「プロセスを開始」というアクティビティでAccessの「マクロ」を呼び出す方法で実行することができました。
「マクロ」で「VBA」を実行するという感じになるので、ひと手間かかりますが、これでUiPathからVBAを実行できるようになります。
(0)事前準備・VBAを呼び出すマクロの作成
UiPathから以下のAccessのVBAを実行するために、UiPathの「プロセスを開始」から呼び出す「マクロ」を作成します。
マクロで実行させるVBAの内容は、CSVファイルを「サンプル1」テーブルにインポートするもので作っています。
1 2 3 4 5 6 7 8 9 |
Function getCSV() Dim FilePath As String FilePath = "C:\Users\・・・・\xxxx.csv" '//ヘッダー情報のあるCSVの取込み方法' '「サンプル1」テーブルに、FilePathのCSVを取り込む' DoCmd.TransferText acImportDelim, , "サンプル1", FilePath, True '//Trueはヘッダーありとして読み込む' End Function |
■このVBAを呼び出すマクロを以下のように作って保存します。
これらの事前準備が終わったら、このマクロをUiPathで実行できるようにしていきます。
(1)アクティビティの追加
UiPathからAccessのマクロを実行するため、「プロセスを開始」アクティビティをドラッグ&ドロップします。
場所:「システム」⇒「アプリケーション」⇒「プロセスを開始」
(2)「プロセスを開始」の設定
上には実行するAccessファイルを指定します。
下には引数を指定します。
パス(1行目) | 実行したいAccessのパスをファイル名まで入れて書きます。 |
アプリケーション引数(2行目) | ここでは「”/x テスト用マクロ”」としてマクロを呼び出すようにしています。 Accessでは「/x」(スイッチと呼ばれる値)で、マクロを呼び出せます。「/x△テスト用マクロ」(△は半角スペース)とスイッチとの間には半角スペースを入れます。 なおWordやパワポではスイッチが異なります。(※1) |
◆Accessを終了する処理
UiPathからマクロを実行した後、UiPathでAccessを終了させるよりも、Accessのマクロの一連の流れの中でAccessを終了した方がシンプルになります。
そこでここでは以下のようにマクロの最後に終了処理を組み込んでいます。
Accessマクロに組み込む
Accessのマクロに以下のように終了処理を組み込みます。