Excelマクロが実行時エラーで止まる。直す前に見るべき3か所

Excelマクロが実行時エラーで止まる。直す前に見るべき3か所

記事
IT・テクノロジー
Excelマクロ(VBA)が「実行時エラー'13' 型が一致しません」などのメッセージで止まったとき、コードを書き換える前に確認したい場所が3つあります。前任者が作ったマクロを引き継いだ方や、「昨日まで動いていたのに急に止まった」という方向けの切り分け手順です。
■1. エラー行の「変数の中身」
エラー表示の「デバッグ」ボタンを押すと、止まった行が黄色くハイライトされます。その行で使われている変数にマウスカーソルを乗せると、いま入っている値が小さく表示されます。「数値が入るはずの変数に文字列が入っている」「空になっている」──「型が一致しません」の大半はここで見つかります。
■2. 処理対象に混ざった「例外データ」
マクロのコード自体は正しくても、処理するシートの側に空白セル・結合セル・文字列化した数値が1つ混ざっているだけで止まることがあります。「昨日まで動いていたのに今日止まる」場合は、コードではなくデータの側が変わった可能性のほうが高いです。最後に貼り付けたデータの範囲を先に疑ってください。
■3. 参照しているシート名・ファイル名
シート名を変えた、ファイルを別のフォルダへ移した、ファイル名を変えた──これだけでもマクロは止まります。エラーメッセージが「インデックスが有効範囲にありません(エラー'9')」の場合は、ほぼこのパターンです。コードを直すのではなく、名前を元に戻すだけで動くことがよくあります。
■それでも絞れないとき
この3か所を見ても原因が分からない場合は、エラー文と画面キャプチャ(+データの列構成)だけで原因を切り分ける、単発の診断サービスをやっています。ファイルの実物を送っていただく必要はないので、社外に出せないデータを扱っている方でも相談しやすい形にしています。
サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す