沖縄セールスパートナー株式会社

BLOGブログ

作った人が辞めて動かないExcelマクロ|AIで中身を読み解き手順書に残す

ツール

月末の朝、いつものように請求書作成のボタンを押したら「実行時エラー’1004’」が出た。作った先輩はもう退職していて、中身を知っている人が社内にいない。Excelマクロの属人化は普段は表に出てきません。問題になるのは、止まったその日です。

結論から書きます。こういうときは、いきなり直そうとしないでください。「コードを退避する→AIに処理内容を日本語で説明させる→業務の流れと照らし合わせて確かめる→直すか作り直すかを決める→手順書に残す」の順で進めるほうが、遠回りに見えて確実です。AIはVBAを読み解くのが得意です。ただし渡す情報を選ばないと、顧客情報やパスワードを社外に出してしまうおそれがあります。この記事では、止まった当日から手順書ができるまでを時系列でたどり、段階ごとに「AIに渡してよいもの・渡さないもの」も添えます。

作った人がいないマクロが「止まった日」に困る理由

沖縄の中小企業では、Excelに詳しい社員が一人で業務の一部を支えていることがよくあります。受注一覧から請求書を作る。現場の日報を集めて月報に貼り付ける。給与計算の前にデータを整える。「少し楽にしよう」と作られたマクロが、何年もかけて業務に欠かせないものになっていきます。作った本人が社内にいれば、止まっても「ちょっと見てもらえる?」で済んでいました。

本人が退職したり、別の部署や家業に移ったりすると、話が変わります。マクロは誰にも触られずに動き続け、Officeの更新、パソコンの入れ替え、共有フォルダの引っ越しなどをきっかけに、ある日止まります。止まる原因は、コードの誤りより環境の変化であることが多いものです。前任者のパソコンのユーザーフォルダにあるファイルを読みに行っている。ネットワークドライブの割り当て文字が変わった。64bit版のOfficeでは古い書き方が通らない。参照設定のライブラリが新しいパソコンに入っていない。よくあるのはこうした原因です。

コードを読める人なら、こうした原因にはすぐ見当がつきます。読める人がいないと、エラー番号で検索して、出てきた対処法を順に試すしかありません。締め日が迫っていれば、手作業で乗り切ってそのまま放っておくことにもなります。AIが一番役に立つのは、この「読める人がいない」という部分です。沖縄の会社でのAI活用の全体像は沖縄の中小企業のAI活用についてまとめた記事で紹介しています。

段階1:その日のうちに、ファイルとコードを元のまま退避する

止まったExcelマクロのファイルとコードを元のまま退避するイメージ

止まった当日に最初にやるのは、修正ではなく退避です。エラーが出たファイルを日付入りの別名で保存し、できれば共有フォルダとは別の場所にもコピーを置きます。慌てて「デバッグ」ボタンを押し、何行か書き換えたせいで元に戻せなくなる。これが一番避けたい事態です。

次に、VBAのコードを取り出します。Alt+F11でVisual Basic Editorを開くと、左側に標準モジュール、シートのモジュール、ユーザーフォームが並んでいます。それぞれを右クリックして「ファイルのエクスポート」を選ぶと、テキストファイルとして書き出せます。あわせて、ボタンに登録されているマクロ名、エラーで黄色く反転した行、エラーメッセージの文言をスクリーンショットで残しておきます。VBAにパスワードがかかって開けないときは、無理に外そうとしないでください。前任者に連絡できるか、社内でどう扱うかを先に相談するほうが安全です。

この段階では、AIにはまだ何も渡しません。やることは、あとで渡す材料を元の状態のまま揃えるところまでです。ただし、書き出したコードに顧客名、口座番号、メールアドレス、パスワードらしき文字列がそのまま書かれていないかは確認しておきましょう。古いマクロには、メール送信やファイル転送のためのパスワードが直接書かれていることが意外とあります。

段階2:AIには「直して」ではなく「何をしているか説明して」と頼む

材料が揃ったら、AIにコードを読ませます。大事なのは、「直して」ではなく「何をしているか日本語で説明して」と頼むことです。いきなり修正を頼むと、AIはエラーの出た行だけを見て、それらしい書き換えを返してきます。それで動いたとしても、マクロ全体が何をしているかはわからないままです。次に止まったとき、また同じところから始めることになります。

たとえば次のように頼みます。「これは経理で使っているExcelマクロです。どのシートのどの範囲を読み、何を計算し、どこに何を書き出しているかを、処理の順番どおりに日本語で説明してください。外部のファイルやフォルダ、メール、他のアプリを使っている箇所があれば、すべて挙げてください」。モジュールが複数あるときは、どの処理がどの処理を呼び出しているかも説明させると、全体の流れがつかみやすくなります。そのあとで、エラーが出た行とメッセージを伝え、考えられる原因を挙げてもらいます。

AIに渡してよいのは、コード本体、エラーメッセージ、シート名や列の見出しといった「構造」の情報です。渡してはいけないのは、実際の取引先名・金額・個人名が入ったデータと、コードに書かれたパスワードや接続先の情報です。パスワードは「****」に置き換え、社名や個人名が入ったファイルパスは「共有フォルダの経理の中」くらいまでぼかしてから貼り付けます。使うAIは、個人の無料アカウントではなく、会社として使うと決めたもの(入力内容を学習に使わない設定のもの)に限るのが基本です。

段階3:AIの説明を、現場の業務の流れと一つずつ照らし合わせる

AIの説明は読みやすいので、そのまま信じてしまいがちです。けれどもAIにわかるのは、コードに書かれていることだけです。「C列が空の行は飛ばす」という処理が、業務としては「キャンセルになった受注を除く」という意味なのか、ただの空行対策なのか。これは現場の人にしか判断できません。そこで段階3では、AIの説明を業務の流れと照らし合わせていきます。

やり方は単純です。AIの説明を印刷するか画面に表示して、そのマクロを日頃使っていた人と一緒に読みます。「得意先コードが『K』で始まるものだけ別のシートに分けています」と書かれていれば、「それは掛け売りの取引先だね」とか「その区分はもう使っていない」といった答えが返ってくるはずです。説明と実際の業務が食い違うところ、誰も意味を説明できない処理には印を付けておきます。昔あってもうやめた業務の名残が、マクロの中にだけ残っていることも珍しくありません。

確かめるときは、コピーしたファイルで実際に動かしてみるのも有効です。その場合、本物のデータは使わず、数件だけの架空データを作って試します。この段階でAIに追加の質問をするときも、渡すのは「この条件のとき、この行はどう処理されますか」という質問と構造の情報だけにして、実データの行は貼り付けないようにします。

あわせて読みたい

セミナーの申込者への連絡が漏れる3つの原因|AIで受付から当日案内まで セミナーの申込者への連絡が漏れる3つの原因|AIで受付から当日案内まで関連する話題をこちらでも解説しています。

段階4:部分的に直すか、作り直すかを決める

マクロを部分的に直すか作り直すかを判断するイメージ

中身がわかったら、直すのか作り直すのかを決めます。原因が環境の変化で、処理の中身は今の業務に合っているなら、該当する箇所だけ直すのが早道です。ファイルの場所を今の共有フォルダに合わせる、64bit版のOfficeで動く書き方に改める、といった修正はAIに案を出させやすく、何をどう変えたかも説明してもらえます。反対に、段階3で今の業務に合わない処理がいくつも見つかったときや、意味のわからない処理が多いときは、無理に直すより作り直したほうがよい場合もあります。

判断の目安を表にまとめました。どれか一つの項目で決まるものではないので、社内の事情とあわせて考える材料にしてください。

観点部分的に直す方向作り直しを考える方向
止まった原因ファイルの場所やOfficeのバージョンなど、環境の変化処理の考え方そのものが今の業務に合っていない
現場との照らし合わせ説明と実際の業務がほぼ一致した誰も意味を説明できない処理が多い
これからの変化当面は業務の流れが変わらない取引先や商品の区分が近いうちに変わる予定がある
使う人同じ部署の数人が同じ手順で使う使う人や部署が増え、共有や同時編集が必要になっている
データの量今の件数で処理時間に不満がない処理に時間がかかり、件数も増え続けている

作り直すといっても、VBAで書き直すとは限りません。関数やピボットテーブルで足りる処理もあれば、クラウドの表計算や業務システムに移したほうがよい処理もあります。どれが合うかは業務の内容と使う人によって変わるので、最初から決めつけずに比べてみてください。AIを業務の流れに組み込むという選択肢については、AIエージェント導入支援のページで考え方を紹介しています。この段階でAIに修正案を出させるときも、渡すのは段階2と同じく、伏せ字にしたコードと構造の情報だけです。修正案は必ずコピーしたファイルに架空データを入れて試し、問題がないことを確かめてから本番のファイルに反映します。

段階5:わかったことを、次の担当者が読める手順書に残す

動くようになったところで終わりにすると、何年か後にまた同じことが起こります。最後の段階は、ここまででわかったことを手順書に残す作業です。これもAIに手伝ってもらえます。段階2でAIが書いた説明と、段階3で現場と確かめた結果をまとめて渡し、「この内容を、Excelに詳しくない担当者向けの手順書にしてください」と頼めば、たたき台はすぐにできます。

手順書に書いておきたいのは、次のようなことです。マクロの目的。いつ、誰が使うか。実行前に用意するファイルとその置き場所。ボタンを押してから終わるまでの流れ。結果が正しいかの確かめ方。よく出るエラーとその意味。そして、このマクロが何を前提にしているかです。前提とは、たとえば「受注一覧のA列には必ず日付が入っている」「共有フォルダの決まった場所に先月分のファイルがある」といったことです。マクロが止まるのはたいてい前提が崩れたときなので、これを書いておけば次の担当者が原因に早くたどり着けます。

手順書づくりでAIに渡す情報も、これまでと同じ線引きで考えます。業務の流れや画面の名前は渡してかまいません。実際の取引先名、担当者の個人情報、パスワードは渡しません。できたたたき台には、社内の人にしかわからない補足を書き足します。パスワードの保管場所は手順書に書かず、「管理者に確認」とだけ書いておくのが無難です。

同じことを繰り返さないために、社内で決めておくこと

せっかく解読して手順書を作っても、置き場所が決まっていなければ、次に止まったときにまた探し回ることになります。手順書はマクロのファイルと同じフォルダか、社内で決めたマニュアルの置き場に保存し、ファイル名でどのマクロのものかわかるようにしておきます。「マクロを直したら手順書も直す」というルールを一行でも決めておけば、中身と説明が少しずつずれていくのを防げます。

社内にマクロが何本あり、それぞれ誰が担当しているかを一覧にするだけでも、属人化の度合いが見えてきます。社員の少ない会社ほど、一人の退職で複数の業務が同時に止まるおそれがあります。退職や異動が決まった時点で、その人が作ったマクロを洗い出し、本人がいるうちに段階2から段階5までを済ませておくのが、いちばん確実な引き継ぎです。本人が説明をその場で確かめられるので、段階3にかかる手間もぐっと減ります。あわせて、AIの使い方のルール(使ってよいサービス、入力してはいけない情報)も文書にしておくと、担当者が迷わずに済みます。

まとめ

作った人が辞めて動かなくなったExcelマクロは、手探りで直そうとするほどこじれがちです。当日はまず退避する。AIには修正ではなく説明を頼む。その説明を現場と照らし合わせて確かめる。そのうえで直すか作り直すかを決め、わかったことを手順書に残す。この順番を守れば、AIは「読める人がいない」という穴を埋める道具としてしっかり役に立ちます。

どの段階にも共通するのは、AIに渡すのはコードと構造の情報まで、実データやパスワードは渡さないという線引きです。自社のマクロをどう整理するか、どこから手を付けるかで迷ったら、お問い合わせからご相談ください。業務の内容をうかがったうえで、進め方を一緒に考えます。