Power Automate:Access VBAの実行方法「アプリケーションの実行」(マクロ経由)


  • Power Automateのフローの途中で、現在使っているAccessのVBAをそのまま使いたい。
  • Power AutomateのアクションにExcelのマクロ実行はあるのに、Accessはないのでどうにか使えないか?
 「Power Automate」を使い始めて、現状のAccessなどのツールも生かしつつフローを作ろうと思ったとき、Excelのマクロを使うアクションは存在するのに、Accessはないということで困ったことがあります。
その際に以下の方法でVBAを実行できるようになったので、その方法を記事にしておきます。

◆AccessVBAの実行方法

 結論から言うと、VBAを直接は実行できませんが、「アプリケーションの実行」というアクションでAccessマクロを呼び出す方法で実行することができました。

(0)事前準備・マクロの作成

 以下のAccessのVBAを実行するため、Power Automateから呼び出せる「マクロ」を作成します。
 VBAの内容としては、CSVファイルを「サンプル1」テーブルにインポートするものです。

■このVBAを呼び出すマクロを以下のように作って保存します。

これらの事前準備が終わったら、このマクロをPower Automateで実行できるようにしていきます。



(1)アクションの追加

「アプリケーションの実行」をドラッグ&ドロップします。
場所:「アクション」⇒「システム」⇒「アプリケーションの実行」

(2)各種パラメーターの選択

「パラメーターの選択」画面が開くので、それぞれの設定を行います。
設定が終わったら、「保存」を押します。
なお、以下ではダブルクォーテーションで囲っていますが、あってもなくても動作します。

■パラメータの内容
アプリケーションパス 実行したいAccessのパスをファイル名まで入れて書きます。
コマンドライン引数 ここではマクロを呼び出すようにしています。Accessでは「/x」のスイッチでマクロを呼び出せます。なおWordやパワポではスイッチが異なります。(※1)
アプリケーション起動後 重いと起動が遅い場合があるので念のため設定しました。
タイムアウト 念のため設定しました。
※1)詳細は「Microsoft Office 製品のコマンド ライン スイッチ」で確認することができます。

(3)フロー画面の確認

フロー画面にアクションが追加されているのが確認できます。

◆Accessを終了する処理

(1)「プロセスの終了」の追加

「プロセスの終了」をドラッグ&ドロップします。
「アクション」⇒「システム」⇒「プロセスの終了」

(2)「プロセスの終了」の設定

「プロセスの終了」画面が開くので設定をして「保存」します。
「プロセスの指定方法」は「プロセスID」にします。
「プロセスID」は「アプリケーションの実行」を作成したときに作られた「プロセスID」を選択します。
「{X}」ボタンを押すとこのフローで使えるものが表示されます。

(3)フロー画面の確認

フロー画面にアクションが追加されているのを確認します。

(4)動作確認

フロー画面の上にある以下の実行ボタンをクリックして、実行できるか確認をします。


おすすめ