BPO運用におけるChatGPTを活用したエクセルマクロ(VBA)生成・解析の一例

1.はじめに

対話型AI「ChatGPT」がリリースされてから早数カ月、さまざまな企業や官公庁で資料作成や情報収集などのために使用されています。読者の皆様も積極的に活用して、業務改革を推し進めたいとお考えではないでしょうか。
そこで今回は皆様にもご興味を持っていただけそうな、給与計算BPO業務におけるChatGPTの活用事例として、エクセルマクロ(VBA)の生成・解析の具体的手法を紹介させていただければと思います。
また読み進めていただくなかで、今後どのように対話型AIと付き合いDX化を進めれば良いか、考えの一助になることができれば幸いです。

2.給与計算プロセスにおける問題

人事部門のなかでも給与計算は月次業務においてかなりのウエイトを占める業務かと思われます。
社員数が多いほどイレギュラーも発生し確認事項が多くなり、使用している給与計算システムや、連動する勤怠システムなどとの相性によっては、インプットデータの加工工数、アウトプットデータの確認工数も増加するという問題が発生するケースも少なくありません。
大まかなフローとしては以下の流れが一般的でしょうか。

上記フローのなかで効率化の手段として考えられるのは、IT化・DX化ということでRPAやマクロを組み合わせて自動化し、工数を削減したり、ヒューマンエラーを防止したりしていくといったところかと思います。読者の皆様におかれましても、上記のような取り組みを推し進めていることかと存じますが、なかなか成果が出ない、成果を感じにくいとお思いの方もなかにはいらっしゃるのではないでしょうか。

3.ChatGPTの活用に至る経緯

ここでタイトルでもあるChatGPTを活用したDX化の一例を紹介させていただければと思います。

BPO業務を受託するなかでお客様が使用していたエクセルツールを引き継ぎ使用して給与計算業務を行う、というケースがありました。
さまざまな関数が組まれ作業はすでに効率化されていたのですが、手作業での処理も多少残っていたため、その部分をマクロで効率化しようと考えました。

有名な話ではありますが、ChatGPTはプログラミング言語を生成することが可能です。
今回のケースではその特性を利用し、ChatGPTにVBAのコードを書いてもらうことにしました。

4.ChatGPT活用事例

その1;VBA生成

そこで以下のような質問をChatGPTに投げかけました。(一部抜粋)

【以下のVBAのコードを教えてください。
「sheet1」「sheet2」というシートがあるエクセルがあります。
「sheet1」にはA列からAH列、約3,000行までデータが入力されてフィルターがかかっています。行数には毎回変動があるので変数を使用してください。
「sheet1」のC列にて0以外でフィルターをかけ、A列からG列および最終行までをコピーして、「sheet2」のA1セルに貼り付けオプション「値」で貼り付け】

コード生成の一例としては

  • VBAのコードを教えてくださいとChatGPTにオーダーする
  • エクセルデータの構造を伝える
  • 手作業の内容を伝える

以上となります。
実際にはエクセルのシート数は2つではなく数多く、フィルターの付け外しやデータの選択、コピーする列の指定も多岐にわたるため、ChatGPTが生成したコードは数10行となりました。
その数10行にわたるコードを人力で書くには時間と労力がかかるところですが、ChatGPTがコードを生成する時間は、質問内容にもよりますが長くても20秒ほどと、マクロを作成するにあたり大幅な工数削減と作業時間短縮を達成しました。

その2;マクロ解析

マクロ作成者が不明の場合、コードのメンテナンスができない、とお困りのケースはよくあるのではと思います。
そのような状況でもChatGPTにマクロを解析してもらい、希望どおりにメンテナンスすることが可能です。
実例として給与計算結果のデータレイアウトが、項目を増設したため変更されたケースを紹介します。これまで特定の列を指定したコードが書かれたマクロを使用し、データを加工していたところ不具合が生じたので、以下のように質問しました。(一部抜粋)

「' A列からC列をコピー
wsWorkAllowance.Range("A:C").Copy」

上記VBAコードを以下のとおり書き換えてください。
コピーする指定の列をA列からC列ではなく、B列からE列に変更

コードメンテナンスの一例としては

  • メンテナンスしたいマクロのコードを貼り付ける
  • VBAコードを書き換えてくださいとChatGPTにオーダーする
  • メンテナンス内容を伝える

以上です。
上記方法であれば、マクロ作成者が不明でどこをどのようにメンテナンスすれば良いかわからない状況に陥っても、ChatGPTにマクロを解析させメンテナンス内容を伝え修正することで、ブラックボックス化を避けることができます。またコード生成と同じく作業時間を短縮できるだけでなく、専門的な知識を必要とせず既存のマクロを修正することが可能です。

5.ChatGPTの課題と今後の展望

もちろん世間で議論されているとおり、ChatGPTの使用には課題もございます。

■課題

  • 個人情報や顧客情報であっても無差別に学習し、質問されたら回答してしまう
  • ChatGPT内部データの特性上、2021年10月以降に発生した事象について知識が足りない場合がある
  • 事実と異なる回答をする場合がある

などがありますが、今まで公開された対話型AIのなかで一番良いものとの評(米:ニューヨークタイムズ紙)もありますので、上記課題により使用を制限してしまうというのはいささか過剰な反応のようにも思えます。

■課題の回避策

  • 個人情報や顧客情報を流さないように注意する
  • ChatGPTが生成した回答が最新の情報かつ正確な情報か別アプローチでも確認する
  • 他の生成型AIに関しても最新情報を継続的にチェックし、より優れた機能を持つ別の生成型AIを模索していく

あたりが一般的な回避策になるかと思います。
しかしながらChatGPTの回答の裏取りや、最新情報の継続的なチェックも大変かと思われますので、回答の正誤確認や最新情報の収集作業をBPO化する、という選択肢も考えられるかもしれません。

今回は給与計算業務における効率化と絡めてChatGPTの活用事例を紹介しました。
業務効率化のためのマクロ作成、その作業自体をChatGPTによって大幅に効率化し、作成したマクロで給与計算プロセス全体を改善していくことができれば、月次の給与計算期間の業務負担と作業時間を減らすことにつながります。
ひいてはその他の人事業務に注力することもできますし、各人事業務にもChatGPTを活用しDX化を進めていくことで、人事部門の皆様にとっては、今よりさらにAIではできない「人の手」が必要な業務、つまり力の入れどころが広がっていくのではないでしょうか。
またお客様の業務プロセス改善の一助として、私たちBPOコンサルタントもお客様とともに、つねに最新のDX技術を活用しながら業務改革を実行していければと考えております。