UiPath:Access VBAの実行方法「プロセスを開始」(マクロ経由で実行)と終了方法
- UiPathのシナリオで、現在使っているAccessのVBAをそのまま使いたい。
- UiPathにExcelのマクロ実行はあるのに、Accessはないのでどうにか使えないか?
その際に以下の方法でVBAを実行できるようになったので、その方法を記事にしておきます。
◆AccessVBAの実行方法
結論から言うと、VBAを直接は実行できませんが、「プロセスを開始」というアクティビティでAccessマクロを呼び出す方法で実行することができました。
(0)事前準備・マクロの作成
以下の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)アクティビティの追加
「プロセスを開始」をドラッグ&ドロップします。
場所:「システム」⇒「アプリケーション」⇒「プロセスを開始」
![]() |
(2)「プロセスを開始」の設定
上には実行するAccessファイルを指定します。
下には引数を指定します。
![]() |
パス(1行目) | 実行したいAccessのパスをファイル名まで入れて書きます。 |
アプリケーション引数(2行目) | ここでは「”/x テスト用マクロ”」としてマクロを呼び出すようにしています。Accessでは「/x」のスイッチでマクロを呼び出せます。なおWordやパワポではスイッチが異なります。(※1) |
◆Accessを終了する処理
Accessマクロに組み込む
以下のようにAccessのマクロに終了処理を組み込みました。
![]() |