PR

【Access VBA】目視チェックの手間と見落としをゼロに!OpenAI APIでCSVの異常値を自動検出する方法

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: Access VBA逆引き大全 600の極意 Microsoft365/Office2024/2021/2019/2016対応 eBook : E-Trainer.jp, 中村峻: Kindleストア
Amazon.co.jp: Access VBA逆引き大全 600の極意 Microsoft365/Office2024/2021/2019/2016対応 eBook : E-Trainer.jp, 中村峻: Kindleストア

コメント

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