こんにちは、なかぜんです。
「Accessはローカルだけのツール」「Power Automateはクラウド専用」――そんなイメージ、ありませんか?
実はこの2つ、うまく組み合わせればクラウド経由でAccessから通知や外部サービス連携ができてしまうんです。
今回は、上級者のあなたに向けて、AccessからPower Automateを呼び出す方法を、VBAコード付きでご紹介します。
Access×Power Automateでできること
たとえば、こんな自動化が可能に!
- Accessからフローを呼び出してメールやTeamsに通知
- クラウドにあるExcelファイルを操作
- SharePointやOneDriveへのファイルアップロード
つまり、Accessのボタン一つで、社内外の連携処理を一気に自動化できるんです。
準備:Power AutomateのHTTPフロー作成
1. HTTPトリガーでフローを作成
Power Automateで「HTTP要求の受信時」をトリガーに選びます。
次に、例えば「Teams通知」を行うアクションを追加してみましょう。以下のような流れになります:
- トリガー:HTTP要求の受信時
- アクション:Teamsに投稿 or メール送信
トリガーを保存すると、URLが生成されます(後ほどVBAで使います)。
AccessからVBAでフローを呼び出す方法
2. VBAでHTTP POSTを送信
AccessのVBAで以下のように記述することで、Power Automateのフローを呼び出せます。
' Power AutomateのHTTPエンドポイント
Const FLOW_URL As String = "https://prod-00.westus.logic.azure.com:...."
Sub 呼び出しフロー()
Dim http As Object
Dim jsonBody As String
' JSONで送信するデータ(任意)
jsonBody = "{""message"":""Accessから通知が来たよ""}"
Set http = CreateObject("MSXML2.XMLHTTP")
http.Open "POST", FLOW_URL, False
http.setRequestHeader "Content-Type", "application/json"
http.Send jsonBody
If http.Status = 200 Then
MsgBox "フローを正常に呼び出しました", vbInformation
Else
MsgBox "エラー:" & http.Status & vbCrLf & http.responseText, vbCritical
End If
End Sub
3. フォームのボタンに割り当てる
フォームにボタンを配置し、呼び出しフロー
プロシージャをOnClickイベントに割り当てれば、Accessから1クリックでPower Automateが動きます!
注意点とよくあるミス
- HTTPフローのURLは非公開に! ⇒ 第三者が知ると悪用されるリスクがあります。
- 送信形式はJSONが基本 ⇒ フロー側の構造に合わせて設計しましょう。
- セキュリティ設定に注意 ⇒ テナントやネットワーク制限で弾かれる場合も。
応用ポイント:こんな使い方もできる!
① フォルダ内のPDFをTeams通知で共有
Accessでファイル生成後、自動でTeamsに通知。ファイルパスをPower Automateに渡してOneDriveにアップも可能。
② 異常検知アラートの自動通知
Access側で在庫や売上などの異常値を検知し、リアルタイムにメール通知を送る処理も簡単に構築できます。
③ 入力データをSharePointリストに自動追加
クラウド連携の肝とも言える連携。Accessのフォームで入力 → Power Automate経由でSharePointにデータ反映。
まとめ:Accessの可能性をクラウドで広げよう
Accessは単体でも強力なツールですが、Power Automateと組み合わせることで、通知・ファイル操作・データ共有など、従来は難しかった処理が驚くほど簡単に実現できます。
今回ご紹介したのは「HTTPリクエストによる連携」ですが、逆にPower AutomateからAccessを起動する構成も可能です(これはまた別の記事で!)。
ぜひあなたの現場でも「クラウド連携の第一歩」として、このテクニックを取り入れてみてくださいね。
それではまた、なかぜんでした。
