PR

Access VBA逆引き集|JSONデータ連携を実現する実践テクニックとCopilot活用術

VBA

近年のシステム連携では、CSVやExcelだけでなくJSON形式のデータを扱う機会が急増しています。

例えば、

  • Web API連携
  • クラウドサービス連携
  • Power Automate連携
  • 社内システム連携
  • 生成AIとのデータ受け渡し

などです。

結論から言うと、Access VBAでもJSONデータを活用することで、従来のCSV中心のシステムから一歩進んだ連携を実現できます。

またCopilotを活用することで、JSON解析コードやAPI連携コードの作成を効率化できるため、従来よりも短時間で高機能なシステムを構築できます。


スポンサーリンク

はじめに

従来のシステム連携はCSVが主流でした。

システムA

CSV出力

Access取込

しかし現在は、

システムA

JSON

API

Access

という流れが増えています。

特にクラウドサービスとの連携ではJSONが標準形式になっています。


JSONとは

JSON(JavaScript Object Notation)はデータ交換形式の一つです。

例えば顧客情報を表す場合、

{

"CustomerCode":"C001",

"CustomerName":"東京商事",

"Address":"東京都千代田区"

}

のように表現します。

人が見ても理解しやすく、多くのシステムで利用されています。


なぜJSON対応が重要なのか

現在のIT環境では、

  • Microsoft 365
  • Power Platform
  • クラウドサービス
  • AIサービス

の多くがJSONを利用しています。

そのためAccessでもJSONを扱えることが大きな強みになります。


AccessでJSONを扱う方法

代表的な方法は次の通りです。

JSONファイル読込

ファイルから取得

API応答取得

Webサービスから取得

JSON生成

外部システムへ送信

本記事では実務で利用頻度が高いパターンを紹介します。


逆引き① JSONファイルを読み込みたい

まずファイルを取得します。

Dim strJson As String

Dim intFile As Integer

intFile = FreeFile

Open "C:\Data\Customer.json" _

For Input As #intFile

strJson = Input$( _

LOF(intFile), _

intFile)

Close #intFile

JSON文字列が取得できます。


逆引き② JSON文字列を確認したい

内容確認に利用します。

Debug.Print strJson

開発時に便利です。


逆引き③ 顧客情報をJSON化したい

Accessデータを出力します。

strJson = _

"{""CustomerCode"":""C001""," & _

"""CustomerName"":""東京商事""}"

簡易的な方法です。


逆引き④ APIへ送信したい

最近利用機会が増えています。

Dim objHttp As Object

Set objHttp = _

CreateObject( _

"MSXML2.XMLHTTP")

接続準備を行います。


逆引き⑤ JSON形式で送信したい

基本形です。

objHttp.Open _

"POST", _

strUrl, _

False

objHttp.setRequestHeader _

"Content-Type", _

"application/json"

objHttp.send strJson

API連携で利用します。


逆引き⑥ 応答結果を取得したい

受信時です。

Dim strResponse As String

strResponse = _

objHttp.responseText

JSON形式の応答を受け取れます。


実践例① 顧客データ連携

クラウドサービスとの連携です。

Access

JSON作成

API送信

登録

CSV不要の連携が可能です。


実践例② 社内システム連携

複数システム間で利用します。

販売管理

JSON出力

Access取込

データ精度向上に役立ちます。


実践例③ AIサービス連携

近年増えている活用例です。

Accessデータ

JSON送信

AI分析

結果取得

業務効率化につながります。


JSONデータをテーブルへ登録する

取得したデータを保存します。

例えば、

{

"CustomerCode":"C001",

"CustomerName":"東京商事"

}

を登録します。

CurrentDb.Execute _

"INSERT INTO T_CUSTOMER(" & _

"顧客コード,顧客名)" & _

"VALUES(" & _

"'C001'," & _

"'東京商事')"

Accessで管理できます。


エラー処理を実装する

通信処理では必須です。

On Error GoTo ErrHandler

'処理

Exit Sub

ErrHandler:

MsgBox _

Err.Number & vbCrLf & _

Err.Description

安定運用につながります。


通信ログを残す

API連携では重要です。

T_API_LOG

項目
実行日時
送信先
結果
エラー内容

記録例です。

CurrentDb.Execute _

"INSERT INTO T_API_LOG(" & _

"実行日時,結果)" & _

"VALUES(" & _

"Now(),'正常')"

障害解析に役立ちます。


実務活用例① Power Automate連携

最近増加しています。

Access

JSON

Power Automate

Teams通知

業務効率化に効果があります。


実務活用例② Webサービス連携

顧客管理システムとの連携です。

顧客検索

API呼出

結果取得

リアルタイム連携が可能になります。


実務活用例③ マスタ同期

本社システムとの同期です。

JSON取得

マスタ更新

ログ出力

運用負荷を削減できます。


JSON活用時の注意点

文字コード

UTF-8を意識する

通信エラー

リトライ設計を行う

ログ管理

障害解析用に保存する

項目変更

外部仕様変更に備える

タイムアウト

長時間通信を考慮する


Copilot活用術① JSON生成コード作成

Copilotへ次のように依頼します。

Access VBAで

JSONデータを生成するコードを

作成してください。

条件

・顧客データ出力

・エラー処理あり

・関数化

効率的にコードを作成できます。


Copilot活用術② API連携コード生成

例えば、

Access VBAで

REST APIへ接続する

サンプルを作成してください

と依頼できます。

雛形作成時間を大幅に短縮できます。


Copilot活用術③ エラー解析

次のような相談も可能です。

HTTP 400 エラーの

原因を調査してください

確認ポイントを整理できます。


AccessとJSONの相性

Accessは古い技術と思われがちですが、

  • テーブル管理
  • VBA実装
  • 帳票出力
  • Excel連携

に加えて、

  • JSON連携
  • API連携
  • Power Platform連携

も実現できます。

そのため現在でも十分に実用的な業務システム基盤として活用できます。


AI時代におけるJSON活用

生成AIサービスの多くは、

入力

JSON

AI処理

JSON

という形式で動作しています。

そのためJSONを理解しているAccess開発者は、今後さらに活躍の場が広がると考えられます。

Copilotを活用しながらJSON連携を学ぶことは、Access開発者にとって有効なスキルアップと言えるでしょう。


まとめ

JSONは現在のシステム連携において重要なデータ形式です。

Access VBAでJSONを活用することで、

  • API連携
  • Power Automate連携
  • クラウド連携
  • AI連携
  • マスタ同期

などを実現できます。

さらにCopilotを活用することで、

  • JSON生成コード作成
  • API接続コード作成
  • エラー解析
  • 保守改善

を効率的に進められます。

これからのAccessシステムではCSVだけでなくJSON対応も大きな差別化要素になります。将来的な拡張性を考えると、ぜひ習得しておきたい技術の一つです。

Access 2024 基礎から応用まで、一冊で身に付くAccess活用術 Office 2024/Microsoft 365 対応 (よくわかる) | 富士通ラーニングメディア |本 | 通販 | Amazon
Amazonで富士通ラーニングメディアのAccess 2024 基礎から応用まで、一冊で身に付くAccess活用術 Office 2024/Microsoft 365 対応 (よくわかる)。アマゾンならポイント還元本が多数。富士通ラーニング…

コメント

タイトルとURLをコピーしました