ChatGPTにVBAを書かせる手順とプロンプト|事務職が業務に入れる前に確認した5つのこと

AIにVBAを書かせてから業務に入れるまでの流れを示したイメージ図 AI・業務効率化

VBAは読めません。それでもChatGPTに「こういう処理をするマクロを書いて」と頼んだら、実際に動くコードが返ってきました。試しに動かしたら、手作業で30分かかっていた処理が数秒で終わる。ここまでは、よく紹介されているとおりです。

問題はそのあとでした。これを来月からの業務に組み込んでよいのか、という段階で一度手が止まりました。自分が中身を説明できないコードを、月次の数字を扱う作業に入れることになるからです。この記事では、AIにVBAを書かせるときの頼み方と、書けたあとに事務職として確認したことを書きます。

その前に、本当にマクロが必要か

結論から言うと、私が「マクロにしよう」と思った作業の半分は、マクロなしで片づきました。頼む前に、次の順番で考えるようになりました。

  • 関数で済まないか … 集計・突合・転記の多くはXLOOKUPSUMIFSで足ります
  • Power Queryで済まないか … 複数ファイルの結合・不要行の削除・形式の整えは、こちらのほうが後から直しやすい
  • AIに直接やらせて済まないか … 毎月1回の集計なら、マクロを作らずその都度AIに処理させたほうが早いことがあります

マクロが本当に要るのは、Excelの操作そのものを自動化したいときです。何十枚ものシートを決まった手順で加工する、印刷設定を一括で変える、ブックをまたいで貼り付ける。この手の「手の動きを再現したい」作業は、関数では代替できません。

なぜここを先に書くかというと、マクロは作った瞬間から「保守が必要な資産」になるからです。動いている間は楽ですが、動かなくなった日に直せる人がいないと、結局その作業が止まります。作らずに済むなら作らないほうがいい、というのが今の考えです。

頼み方の型

それでもマクロが要ると判断したときの頼み方です。3つのことを必ず書いています。

① 前提を、しつこいくらい書く

最初のころは「シートごとの売上を集計するマクロを書いて」だけで頼んでいて、毎回作り直していました。返ってくるコードが悪いのではなく、こちらが渡している情報が足りないだけです。今はこう書いています。

Excelのマクロ(VBA)を書いてください。私はVBAを読めない事務職です。

【データの形】
・ブックには拠点ごとのシートが20枚ほどあります(シート名は拠点名。増減します)
・各シートとも1行目が見出し行で、2行目からデータが始まります
・使う列は見出し名で「売上」「原価」「人件費」の3つです(列の位置は変わることがあります)

【やってほしいこと】
・全シートを回って、拠点名と3項目の合計を「集計」シートに1行ずつ書き出す
・「集計」シートがなければ新規作成する

【条件】
・列は位置ではなく、必ず見出し名で探してください
・見出しが見つからないシートは処理せず、シート名を記録して最後にまとめて報告してください
・元のシートには一切書き込まないでください
・コードには、日本語のコメントを各処理の頭に入れてください

長く見えますが、書いているのは自分が手作業でやるときに気にしていることだけです。手順書を書くのと同じで、ここを省くと結局あとで直す羽目になります。

② 「列の位置」ではなく「見出し名」で拾わせる

これが実務ではいちばん効きます。何も指定しないと、AIは「C列の値を取る」という書き方をしがちです。ところが実務のファイルは、来月には列が1つ増えています。そのたびに動かなくなります。

見出し名で探す書き方にしておけば、列が増えても動きます。技術的な話に見えますが、「ファイルは毎月少しずつ変わる」という前提を知っているのは現場の人間だけなので、これはこちらが指定すべきことです。

③ 日本語のコメントを必ず入れさせる

読めない自分のためであり、次に触る人のためでもあります。コメントがあるだけで、「どこを直せばよさそうか」の見当がつきます。引き継ぎを前提にするという意味では、事務職がいちばん気にすべき指定かもしれません。

④ 一度に全部作らせない

最初は「やりたいこと全部」を一気に書かせていました。返ってくるコードは長く、動かなかったときにどこが原因なのか見当もつきません。読めないので、直しようもない。

今は、処理を分けて頼みます。まず「シートを1枚読んで、値を取り出すだけ」を作らせて動かす。次に「それを全シートで回す」。最後に「結果を書き出す」。1段階ずつ動作を確認してから足していくと、動かなくなっても直前に足した部分が原因だと分かります。

いきなり完成形ではなく、段階を分けて作ってください。
まずは1枚目のシートから3項目を読み取って、結果をメッセージで表示するだけの
コードをください。動作を確認してから次に進みます。

遠回りに見えますが、結果的にはこちらのほうが早く仕上がりました。全体が一度に出てくると、確認をあきらめて「たぶん大丈夫」で通してしまうのが、いちばん危ないところです。

AIにVBAを書かせてから業務に入れるまでの流れを示したイメージ図
書かせてから業務に入れるまでの流れ(イメージ図です)

読めないコードを、それでも確認する方法

出てきたコードを理解できないまま実行するのは、さすがに怖い。かといって、VBAを一から勉強する時間もない。そこで、コードのことはAIに説明させることにしました。実際に投げている3つです。

このコードが何をするか、処理の順番どおりに日本語で説明してください。
専門用語は使わず、Excelの操作に置き換えて書いてください。

まずこれで、自分の意図とずれていないかを確認します。ここで「あ、そこまではやらせるつもりはなかった」と気づくことが何度もありました。

このコードが、意図せずデータを壊す可能性がある箇所を挙げてください。
特に、上書き・削除・保存を行っている行を教えてください。

これがいちばん重要です。上書き・削除・保存の3つさえ把握しておけば、最悪の事故は避けられます。私はこの質問をしてから、元ファイルを上書きする書き方になっていたことに気づいたことがあります。

来月このファイルの形が変わるとしたら、どこが原因で動かなくなりますか。
壊れやすい前提を3つ挙げてください。

これは保守のための質問です。答えを読んでおくと、実際に動かなくなったときに原因の見当がつきます。

そのうえで、必ず作業用のコピーで試します。原本で試して失敗すると、その日のうちに復旧しなければならなくなります。コピーなら、消えて困るものは何もありません。

業務に入れる前に確認した5つのこと

コードが動いても、すぐに業務へは入れませんでした。総務の立場で確認したのが次の5点です。

① 会社のPCでマクロを有効にできるか

セキュリティ設定でマクロの実行が制限されている会社は珍しくありません。自分のPCで動いたからといって、他の人のPCで動くとは限りません。全員が使う想定なら、ここは先に確認すべきです。

② マクロ付きファイルを配れるか

マクロを含むファイル(xlsm)は、メールやチャットの添付でブロックされることがあります。「作ったのに配れない」は実際に起こります。自分だけで使うのか、配布するのかで話がまったく変わります。

③ 自分が休んだとき、誰が動かせるか

これがいちばん悩ましいところです。作った本人だけが使える状態は、業務としては危うい。私は「手順書を1枚作るまでは正式運用にしない」という自分ルールにしました。ボタンの場所、実行する順番、失敗したときにどうするか。この3つが書いてあれば、最低限は回ります。

④ 元ファイルのバックアップはどうするか

マクロは、間違えたときの取り消しが効きません。実行前に自動でコピーを作る処理を先頭に入れてもらうか、運用ルールとして「実行前に必ず複製する」を手順書に書いておきます。

⑤ AIに渡した内容は問題なかったか

コードを書かせるだけならデータそのものは要りません。ところが、うまく動かないときにエラーを見せようとして、実データを貼ってしまいがちです。私は列名と数行のダミーだけを渡すようにしています。社内ルールの整理は「生成AIの社内利用ルール・ガイドラインの作り方」に書きました。

AIに書かせたマクロを業務に入れる前に確認する5項目を並べたチェックリストの図
業務に入れる前のチェックリスト

実際にやらかした3つ

① 元ファイルが上書きされるところだった

「集計結果を保存して」と頼んだら、元のブックを保存する書き方になっていました。コピーで試していたので実害はありませんでしたが、原本でやっていたら加工前のデータが消えていました。前述の「上書き・削除・保存を挙げて」を毎回聞くようになったのは、これがきっかけです。

② 列が1つ増えただけで動かなくなった

最初のコードは列の位置を決め打ちしていました。翌月、元ファイルに列が1つ追加され、まったく違う数字が集計されました。エラーで止まってくれず、それらしい数字が出るのが怖いところです。見出し名で探す書き方に変えて解決しました。

③ 「動くけど誰も直せない」状態を作りかけた

便利だったので、そのまま月次の作業に組み込みそうになりました。ただ、自分が説明できないものを業務の手順に入れるのは、担当が代わった時点で止まるということです。手順書とコメント付きのコードを残してから運用に入れる、という順番に落ち着きました。

マクロにしない、という選択もある

ここまで書いておいてなんですが、私自身は最近、新しくマクロを作る回数が減りました。同じことをAIに直接やらせるほうが、保守の心配がないからです。

使い分けはこうしています。

  • マクロにする … 自分以外の人も実行する。毎日・毎週など頻度が高い。手順が固定されている
  • マクロにしない … 自分だけが使う。月1回程度。元ファイルの形がまだ安定していない

「ボタンを押すだけ」にする価値があるのは、押す人が自分以外にもいるときだと思います。

よくある質問

Q. VBAを勉強しなくても大丈夫ですか?

書けなくても頼めます。ただし「何をしているコードか」を説明させて読むところは省略しないほうがいいです。読めるようになる必要はありませんが、読ませて確認する習慣は要ります。

Q. どのAIを使うのがいいですか?

主要なものならどれでもコードは書けます。差が出るのは前提の伝え方のほうです。ツールを乗り換えるより、頼み方を整えるほうが効果があります。

Q. エラーが出たときはどうすればいいですか?

エラーメッセージをそのまま貼って、「このエラーの意味と、直し方を説明してください」と聞けば、たいてい解決します。このとき実データを一緒に貼らないよう気をつけてください。

Q. 作ったマクロを他部署に配ってもいいですか?

配る前に、実行環境と保守の担当を決めてからにしたほうが安全です。「もらったけど動かない」「動かなくなったが誰も直せない」は、結局こちらに戻ってきます。

どの作業から手を付けるべきか、23項目で判定できます

毎月やっている作業を選ぶだけで、仕組みにできるもの手作業のまま残るものを判定するツールを置いています。判定の4つの軸もそのまま表示するので、納得できなければ読み替えてもらって構いません。入力した内容はブラウザの中だけで処理され、どこにも送信されません。

月次業務の自動化余地診断(無料・登録不要)

まとめ

  • 頼む前に、関数・Power Query・AIへの直接依頼で済まないかを先に考える
  • マクロは作った瞬間から保守が必要な資産になる。作らずに済むなら作らない
  • プロンプトには、データの形・やること・条件を手順書のレベルまで書く
  • 列は位置ではなく見出し名で探させる。ファイルは毎月変わる前提で頼む
  • コードには日本語コメントを入れさせる。引き継ぎのために効く
  • 読めなくても、「上書き・削除・保存の箇所」をAIに挙げさせて確認する
  • 必ず作業用のコピーで試す。原本では試さない
  • 業務に入れる前に、実行環境・配布可否・保守担当・バックアップ・AIに渡した内容の5点を確認する

AIに書かせること自体は、もう難しくありません。難しいのは、それを業務の手順として引き受けるかどうかの判断のほうでした。総務の仕事は、便利なものを見つけることより、それを続けられる形にすることのほうが多い気がします。

※本記事は一般的な情報の紹介を目的としています。マクロの実行可否やファイルの取り扱いは、必ず自社の情報システム部門や社内ルールに従ってください。また、各AIサービスの仕様やデータの取り扱いは変更される場合がありますので、利用前に公式の最新情報をご確認ください。

お知らせ:プロンプト集をnoteで公開しました

この記事で紹介したような頼み方の型を含め、総務・経理の実務でそのまま使える穴埋め式プロンプト30本(集計チェック・文書作成・議事録・メール・報告資料・人事労務)を1冊のnoteにまとめました(有料500円・返金申請受付あり)。冒頭+2本は無料で読めます。

【コピペで使える】総務・経理のためのAIプロンプト集30(穴埋め式)|note

関連記事

コメント

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