PR

Access VBA逆引き集|OpenAI APIでCSVデータの異常値を自動検出する実践テクニックとCopilot活用術

VBA

近年、CSVデータを取り込む業務はますます増加しています。しかし、実際に運用していると「数量がおかしい」「金額が異常に大きい」「住所が不自然」など、人の目で確認しなければ見つからない問題が発生します。

結論から言うと、Access VBAからOpenAI APIを利用することで、従来のルールベースでは見つけにくかった異常データを自動検出できるようになります。

最近ではJSON連携やAPI連携の重要性が高まっており、OpenAI APIも同じようにJSON形式で利用できます。Access VBAと組み合わせることで、既存のCSV取込システムにAIによるデータチェック機能を追加できます。 [latest-inf…system.com]


スポンサーリンク

AIによる異常値検出とは

従来の異常値検出は次のようなルールでした。

数量 > 10000

金額 > 10000000

しかし実際には、

数量:15

単価:100円

金額:500万円

のように、単純な条件では判定できない異常があります。

OpenAIを利用すると

数量

単価

金額

商品名

顧客情報

備考

などを総合的に判断できます。


なぜOpenAIを活用するのか

例えば次のデータです。

顧客名商品名数量金額
A商事ケーブル105000
B工業ケーブル126000
C株式会社ケーブル15700000

人はすぐに違和感に気付きます。

一方で単純なルールでは、

700000円

上限未満

正常

と判定される場合があります。

OpenAIは文脈を考慮した判断が可能です。


OpenAI APIとは

OpenAI APIは、アプリケーションからAIへ指示を送信し、結果を取得する仕組みです。

流れは次の通りです。

Access

JSON生成

OpenAI API

分析

結果返却

Accessへ保存

現在のAccess VBAでも十分に実装可能です。 [latest-inf…system.com]


システム構成例

CSVファイル

Access取込

OpenAI分析

異常判定

要確認リスト作成

担当者確認

既存システムへの追加も比較的容易です。


異常検知履歴テーブルを作成する

まずはログ管理用テーブルです。

T_AI_CHECK_LOG

項目内容
IDオートナンバー
確認日時日時
対象データ長いテキスト
判定結果短いテキスト
AIコメント長いテキスト
確認者短いテキスト

後から分析できるようにしておきます。


逆引き① OpenAIへ送信したい

まずはJSONを作成します。

Dim strJson As String

strJson = _

"{""model"":""gpt-4o-mini""," & _

"""messages"":[{""role"":""user""," & _

"""content"":""以下の販売データに異常があるか判定してください""}]}"

JSON形式で作成します。


逆引き② HTTP通信したい

OpenAI APIへ接続します。

Dim objHttp As Object

Set objHttp = _

CreateObject("MSXML2.XMLHTTP")

Access VBAでよく利用する方法です。 [latest-inf…system.com]


逆引き③ POST送信したい

API実行部分です。

objHttp.Open _

"POST", _

strUrl, _

False

objHttp.setRequestHeader _

"Content-Type", _

"application/json"

objHttp.setRequestHeader _

"Authorization", _

"Bearer " & strApiKey

objHttp.send strJson

OpenAIとの通信が実行されます。


逆引き④ 結果を取得したい

応答を取得します。

Dim strResponse As String

strResponse = _

objHttp.responseText

JSON形式の結果が返却されます。 [latest-inf…system.com]


逆引き⑤ 判定結果を保存したい

分析結果を履歴へ残します。

CurrentDb.Execute _

"INSERT INTO T_AI_CHECK_LOG " & _

"(確認日時,判定結果) " & _

"VALUES(Now(),'異常あり')"

後から確認できます。


実践例① 売上データチェック

CSV取込後の処理です。

CSV取込

売上データ抽出

OpenAI分析

異常一覧出力

月次売上システムで有効です。


実践例② 在庫データ分析

在庫管理システムにも利用できます。

例えば、

在庫数 10

出庫数 500

などの異常パターンを検出できます。


実践例③ 顧客マスタ確認

マスタデータ登録時にも有効です。

具体例

電話番号桁数異常

住所形式異常

会社名記載ミス

従来は目視確認が必要でした。


実践例④ 作業日報チェック

最近注目されている活用方法です。

例えば

作業時間:2時間

実施内容:

原子炉停止操作

設備点検

全面復旧対応

のような記載で整合性が取れているかを確認できます。

人によるレビュー負荷を削減できます。


実践例⑤ 問い合わせデータ分析

過去データから異常傾向を発見できます。

通常の問い合わせ

障害報告

緊急案件

クレーム

などの分類も可能です。


AI判定時のプロンプト例

精度向上のために重要です。

以下の販売データについて

異常と思われる箇所を指摘してください。

判定理由も回答してください。

結果は

正常

または

異常

で回答してください。

シンプルな指示の方が安定します。


エラーハンドリングを実装する

通信処理では必須です。

On Error GoTo ErrHandler

'API処理

Exit Sub

ErrHandler:

MsgBox _

Err.Number & vbCrLf & _

Err.Description

安定運用に役立ちます。 [latest-inf…system.com], [latest-inf…system.com]


ログ管理も組み合わせる

AI連携では履歴が重要です。

保存する項目

  • 実行日時
  • 対象データ
  • 判定結果
  • 応答内容
  • エラー内容

トラブル分析が容易になります。 [latest-inf…system.com]


Copilot活用術① OpenAI連携コード作成

Copilotへ依頼します。

Access VBAです。

OpenAI APIへ接続し

分析結果を取得する

コードを作成してください。

開発速度が向上します。 [latest-inf…system.com]


Copilot活用術② プロンプト改善

Copilotへ依頼します。

異常値検出の精度を

向上させるプロンプトへ

改善してください。

AIの回答品質向上につながります。


Copilot活用術③ ログ分析

大量のAI判定結果を分析できます。

以下のログから

異常発生傾向を

分析してください。

運用改善に活用できます。


OpenAI導入時の注意点

個人情報を送信しない

顧客情報や機密情報はマスキングを行いましょう。

山田太郎

顧客A

東京都千代田区

東京都


AI判定を過信しない

最終判断は人が行います。

AIは補助ツールとして活用するのがおすすめです。


判定基準を明確にする

プロンプトが曖昧だと結果も不安定になります。


ログを残す

運用改善のため必須です。


AccessとOpenAIの相性が良い理由

Accessは業務データを扱うことに強みがあります。

一方OpenAIは、

  • 自然言語分析
  • 異常パターン検出
  • コメント生成
  • 分類処理

が得意です。

両者を組み合わせることで、

データ管理 + AI分析

が実現できます。

従来のAccessシステムを大きく作り変えることなく、AI機能を追加できる点も魅力です。


まとめ

Access VBAからOpenAI APIを利用することで、CSVデータの異常値検出を大幅に高度化できます。

従来のような単純な条件チェックだけでなく、

  • 売上データ異常検出
  • 在庫データ分析
  • 顧客マスタ確認
  • 日報チェック
  • 問い合わせ分析

など幅広い用途で活用できます。

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

  • API接続コード作成
  • エラーハンドリング実装
  • プロンプト改善
  • ログ分析

も効率化できます。

これからのAccessシステムでは、データ管理だけではなく「AIによるデータ分析」を組み込むことが大きな差別化ポイントになるでしょう。

Amazon.co.jp

コメント

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