月初の請求書発行日、午前10時。
いつもの手順通り、エクセルを開く。画面上部にある「請求書作成実行」という灰色のボタン。
これこそが、先月退職した「パソコンに詳しい佐藤さん」が残してくれた、魔法のボタンだ。
いつもなら、これをポチッと押せば、画面がパパパッと切り替わり、全取引先ごとのPDFが自動生成される。佐藤さんは言っていた。「僕がいなくなっても、このボタンさえ押せば大丈夫ですから」と。
私はコーヒーを一口飲み、クリックした。
……その瞬間。
画面が白くなり、無機質なウィンドウと共に、見たことのない警告音が鳴り響いた。
実行時エラー ‘1004’: アプリケーション定義またはオブジェクト定義のエラーです。
または
実行時エラー ‘9’: インデックスが有効範囲にありません。
「え? 何これ?」
思考が停止する。
「終了」「デバッグ」「ヘルプ」という3つのボタンが表示されているが、どれも押すのが怖い。
エラー画面を閉じようとしても、何度も同じ画面が出てくる。
冷や汗が一気に吹き出る。
今日中に請求書を150社に出さないといけない。手作業だと3日はかかる分量だ。
佐藤さんの連絡先は知らないし、退職した人に業務連絡をするのはコンプライアンス違反だ。
社内にプログラミングができる人は……いない。私が一番詳しい(ということにされている)くらいだ。
今回は、そんな「前任者の置き土産(ブラックボックス・マクロ)」が時限爆弾のように爆発した日の、非エンジニアでもできる「緊急爆弾処理(デバッグ)」の手順と、この「呪いの装備」を解くためのロードマップを完全解説します。
1. 緊急対応:エラー画面が出ても「終了」を押すな
まず、深呼吸してください。PCから煙が出ることはありません。
エラーが出た瞬間、パニックになって「終了」や右上の「×」ボタンを押して、「見なかったこと」にしようとしていませんか?
待ってください。そのエラーメッセージを閉じたら、捜査は迷宮入りします。
そのエラー画面は、プログラムが「ここでつまづいたよ!助けて!」と叫んでいるSOSです。
勇気を持って、真ん中の「デバッグ」というボタンを押してください。
魔界の入り口「VBE画面」へようこそ
「デバッグ」を押すと、英語の文字がびっしりと書かれた、ハッカーのような画面(VBE:Visual Basic Editor)が開きます。
拒絶反応が出るかもしれませんが、落ち着いてください。見るべき場所はたった一つです。
「黄色くハイライトされている行」
そこが、犯行現場です。
プログラムは上から順に実行され、その「黄色い行」を実行しようとした瞬間に力尽きたのです。
まず、その画面をスマホで撮影してください。
もし後でプロ(私たちのような業者)に助けを求める場合、この写真があるかないかで、解決スピードが10倍変わります。
2. 鑑識捜査:非エンジニアでもできる「3つの推理」
コードの意味(IfとかDimとか)がわからなくても、推理はできます。
黄色くなっている行と、エラーメッセージの種類から、原因を特定しましょう。
以下の3つが、退職者マクロのエラー原因の8割を占めます。
パターンA:ファイルやフォルダが見つからない
エラー内容: 実行時エラー ‘1004’ ファイルが見つかりません
黄色い行の例:
Workbooks.Open “C:\Users\Sato\Desktop\売上データ.xlsx”
【推理】
コードの中を見てください。「Sato」とか「Desktop」とか書いてありませんか?
これは「佐藤さんのパソコンのデスクトップにあるファイルを開け」という命令です。
佐藤さんがいなくなった今、あなたのPCにそのファイルはありません。あるいは、共有サーバーのフォルダ構成を誰かが変えたのかもしれません。
【応急処置】
コード内のパス(” “で囲まれた部分)を、現在の正しいファイルの場所に書き換えれば直ります。(※書き換えるのが怖い場合は、コードに書かれている通りの場所に、フォルダとファイルを作ってあげる方が早いです)
パターンB:シート名が変わっている
エラー内容: 実行時エラー ‘9’: インデックスが有効範囲にありません
黄色い行の例: Sheets(“売上集計”).Select
【推理】
マクロは融通が利きません。「売上集計」というシートを探せと言われたら、一文字でも違うとパニックになります。
誰かが気を利かせて、シート名を「売上集計_1月」に変えていませんか? あるいは、半角スペースが入っていませんか?
【応急処置】
エクセルのシート名を、コードに書かれている通り(例:”売上集計”)に戻してください。これで動きます。
パターンC:想定外のデータ(空白や文字)がある
エラー内容: 型が一致しません
黄色い行の例: Cells(i, 5).Value = Cells(i, 3).Value * 1.1
【推理】
これは「掛け算(計算)」をしている行です。
計算しようとしたセルに、数字ではなく「空欄」や「文字(※未定など)」が入っていませんか?
「数字が入っているはず」という前提で作られたマクロは、文字に出会うと死にます。
【応急処置】
元データを確認し、イレギュラーなデータ(文字や空欄)を取り除いてください。
3. 奥義:「F8キー」連打で、マクロをスロー再生する
「黄色い行を見ても、何が原因かさっぱりわからない……」
そんな時は、プログラマーが使う秘密兵器「ステップ実行」を使います。
- 一旦マクロを停止(■ボタン)します。
- プログラムの最初の行(Sub 〇〇() と書いてあるところ)をクリックします。
- キーボードの [F8] キー を1回押します。
- すると、1行だけ黄色くなります。
- もう一度 [F8] を押すと、次の行に進みます。
これを繰り返すと、マクロを「コマ送り」で再生できます。
「あ、このシートを開いた瞬間にエラーになったぞ」
「あ、ここで変な数字が入ったぞ」
と、犯行の瞬間を目視で確認できるのです。
これをやるだけで、あなたはもう「何もわからない素人」ではありません。「デバッグができる現場担当者」です。
4. 最終手段:マクロを捨てて「手作業」で乗り切る裏技
「デバッグしたけど直せない!でも納期は今日だ!」
そんな時は、マクロを修理するのは諦めましょう。
ただし、ゼロから手入力する必要はありません。マクロがやっていることの「一部」を盗むのです。
「隠しシート」を暴け
多くの便利マクロは、計算途中のデータを「非表示シート」に隠し持っています。
シート見出しの上で右クリック > 「再表示」 を選んでみてください。
「設定」「一時データ」「マクロ用」……そんな名前の怪しいシートが出てきませんか?
そこに、あなたが欲しかった「集計済みのデータ」や「計算式」が残っている可能性があります。
それさえ見つかれば、あとはコピペで新しいエクセルに貼り付けて、手作業で整えれば完了です。
自動化ツールが壊れたなら、そのツールの「部品」を使って人力で組み立てる。
これが、現場のサバイバル術です。
5. なぜ「魔法のツール」は「呪いの装備」になるのか
嵐が過ぎ去った後、冷静になって考えてみましょう。
なぜ、こんなに脆弱なツールに業務を委ねてしまったのでしょうか。
佐藤さんは悪気があって爆弾を残したわけではありません。むしろ、良かれと思って「みんなが楽になるように」マクロを作ってくれたはずです。
しかし「個人のスキルに依存した開発(属人化)」は、組織にとって巨大な負債です。
- ドキュメント(設計図)がない
作った本人しか構造を知らない。 - 環境変化への弱さ
Windowsの更新や、列の挿入だけで簡単に壊れる。 - 心理的ロックイン
「壊れるのが怖いから、非効率だと分かっていても業務フローを変えられない」
「ボタン一つで終わる」という甘い蜜の代償は、あまりにも大きいのです。
6. 再発防止策:脱・ブラックボックスへの道
今後、二度とこの恐怖を味わわないために、以下の対策を進めましょう。
① 「魔改造マクロ」の新規作成を禁止する
今後、社内で誰かが「便利なツール作りました!」と言ってきても、手放しで喜んではいけません。
以下の資料(納品物)がないツールは、公式採用しないルールにしてください。
- 入力と出力の定義
何を入れたら何が出るのか。 - 禁忌事項リスト
「シート名を変えるな」「A列に行を追加するな」等のルール。 - 緊急連絡先
エラーが出た時、誰が直すのか。
② Excelマクロから「クラウド」へ移行する
これが恒久対策です。
ローカルPCの中でカビが生えていくExcelマクロを捨てて、Googleスプレッドシート + GAS(Google Apps Script)、あるいはkintoneなどのノーコードツールへ移行します。
- バージョン管理
誰がいつ壊したかが分かり、1秒で元に戻せる。 - ブラウザで完結
「佐藤さんのPC」に依存しない。 - 連携力
チャット通知やメール送信など、Excel以上の自動化が可能。
「移行なんて難しそう」と思うかもしれませんが、「何をしているかわからない複雑なマクロ」の中身は、整理すれば「実は単純な3つの作業」だった、なんてことはザラにあります。
7. まとめ:そのボタン、本当に必要ですか?
マクロが壊れたことは災難でしたが、業務を見直すチャンスでもあります。
ブラックボックス化したマクロの中身は、実は「昔の非効率なアナログ業務を、無理やり自動化しただけのスパゲッティ」であることが多いです。
修理にお金をかけるより、業務フローごと断捨離して、最新のSaaSを入れた方が安くて安全かもしれません。
もし、「自分では判断できない」「コードの意味だけでも教えてほしい」という場合は「うしろぽっけ」にご相談ください。
- エラー調査
「このマクロ、何行目を直せば動く?」のセカンドオピニオン。 - 解読・仕様書作成
謎のコードを解析し、「日本語の説明書」を作ります。 - クラウド移行
危険なマクロを、安全なスプレッドシートツールに作り変えます。
私たちは、絡まった糸を解くのが得意です。
佐藤さんが残したパズルを、一緒に解き明かしましょう。そして、次は誰が辞めてもビクともしない「強いバックオフィス」を構築しましょう。
修正を相談する(無料)