ChatGPTでVBAを作成!JSONデータ投入を効率化した話
はじめに
テスト工程では、テストケースの実施だけでなく、検証環境へデータを準備する作業が発生することがあります。
私が担当していた案件でも、お客様から提供されたJSON形式のリクエストデータを検証環境へ投入する業務がありました。投入件数は数十件の日もあれば、数百件、数千件になることもあり、スケジュールに沿ってチームで分担して対応していました。
当初は一般的なAPIツールで対応できていましたが、一部の機能だけは同じ方法では投入できず、思わぬところでつまずきました。
今回は、その問題をどのように解決し、最終的にチーム全体で効率よく作業できるようにしたのかを紹介します。
通常はPostmanやTalend APIでデータ投入していた
お客様から受領したJSONデータを利用し、検証環境へデータ投入を行っていました。
環境によって方法が異なり、
・PostmanでCSVを読み込み、一括でAPIを実行する
・Talend APIでJSONを直接Bodyへ貼り付けて送信する
という2つの方法を使い分けていました。
PostmanではCSV化したデータを大量投入できるため、多くのデータを効率よく処理できます。一方、Talend APIで投入する機能は件数が少なかったため、JSONを直接貼り付けて対応していました。
どちらもHTTPステータスコード200が返却されれば、正常にデータ投入できたことを確認していました。
一部の機能だけAPIツールでは投入できなかった
ところが、ある機能だけはPostmanを使うと毎回HTTP ステータスコード400番台のエラーが返ってきました。
最初は、
「お客様から受領したJSONデータに誤りがあるのではないか」
と考え、お客様へ確認をお願いしていました。
しかし、何度確認してもデータに問題は見つかりません。
「これは何か別の原因があるのではないか」
と感じ、プロジェクト全体を統括されている方へ相談し、その機能の有識者を紹介していただきました。
原因はAPIツールではなく実行方法だった
有識者へ確認した結果、原因はJSONデータではありませんでした。
その機能だけはAPIツール経由では正しくリクエストできず、Linux環境からcurlコマンドで実行する必要があることが分かりました。
教えていただいた内容は、
・アクセストークンを取得する方法
・curlコマンドの実行方法
・JSONデータを指定して投入する方法
でした。
実際に試してみると、それまで400番台のエラーになっていたデータも正常に投入することができ、HTTPステータスコード200が返ってきました。
「エラーが発生したらデータが悪い」と決めつけるのではなく、「実行方法そのものに原因がある可能性もある」ということを、この経験から学びました。
次の課題はJSONの整形だった
ただ、新たな課題もありました。
お客様から提供されるJSONデータは、人が見やすいように改行された縦長の形式になっています。
一方で、curlコマンドへ渡す際には、JSONを1行にまとめた形式へ変換する必要がありました。
件数が少なければ手作業でも対応できますが、数百件、数千件となると現実的ではありません。
毎回コピー&ペーストを繰り返して改行を削除する作業は、時間がかかるだけでなく、入力ミスにもつながります。
ChatGPTを活用してVBAを作成
そこで、改行を自動で除去し、JSONを1行へ変換するVBAを作成することにしました。
実装にあたってはChatGPTを活用しましたが、コードをそのまま利用したわけではありません。
処理内容や各メソッドの役割を確認・理解し、内容を把握したうえで利用しました。
作成したVBAでは、
・JSONファイルを読み込む
・改行や不要な空白を除去する
・Linuxのcurlコマンドで利用できる形式へ変換する
という処理をボタン一つで実行できるようにしました。
これにより、これまで手作業で行っていた整形作業を大幅に短縮できました。
手順書を作成し、チームへ展開
有識者から教えていただいた内容は、最初は私一人しか知りませんでした。
しかし、このままでは担当者が変わるたびに同じ説明が必要になります。
そこで、
・Linuxへの接続方法
・アクセストークン取得方法
・curlコマンドの実行方法
・VBAの利用方法
・データ投入手順
をまとめた手順書を作成しました。
さらに、VBAを実行できるシートも手順書に組み込み、誰でも同じ手順で作業できるようにしました。
完成後はチームメンバーへレクチャーを行い、属人化していた作業を標準化することができました。
この経験で得た学び
今回の経験を通して、技術的な知識だけでなく、業務改善の考え方も学ぶことができました。
特に印象に残っているのは次の3点です。
・エラーの原因を決めつけず、実行環境や実行方法まで視野を広げること
・AIは「答えを出してもらう道具」ではなく、「改善のためのパートナー」として活用できること
・自分だけができる状態で終わらせず、手順書やツールを整備してチーム全体へ展開することの重要性
単にデータ投入ができるようになっただけではなく、作業時間の短縮、入力ミスの防止、属人化の解消につながったことが、この取り組みの一番大きな成果だったと感じています。
おわりに
テスト工程では、「決められた手順を実施するだけ」というイメージを持たれることがあります。
しかし実際には、より安全で効率的な方法を考え、改善し、それをチームへ展開することも重要な役割の一つです。
今回の経験を通して、問題を解決するだけでなく、誰でも再現できる形へ落とし込むことの大切さを改めて実感しました。
同じように大量データの投入や環境依存のAPI実行で悩んでいる方の参考になれば幸いです。



















