Excel VBAの気付きにくいエラー対応法 Forがありません Nextがありません
| Excel VBAを組んでいて、エラーになったものの、その解決に手間取った箇所があるので、記録 |
| として残すことにしました。 |
| |
| 最単純モデルで解説します。 |
| |
| 下図のように、Excel上にコマンドボタンをひとつ配置し、 |
| |
 |
| |
| 次のコードを打ち込んでください。 |
| |
 |
| |
| ボタンを押して実行してみましょう。すると、エラーメッセージが表示されたはずです。 |
| |
 |
| |
| さあ、どこにエラーがあるか分かるでしょうか? |
| Next に対する For はきちんと記述されています。 |
| |
| 最単純モデルで説明しているので、お気づきかと思いますが、If 〜 End If 構文の最後に、「If」が |
| 抜けていますね。正しく書き直したものが下図です。 |
| |
 |
| |
| 誤りを直して実行してみます。 |
| |
 |
| |
| はい、処理が走りました。 |
| |
| 今回、単純化して説明しているので気付くのは簡単だったと思います。ところが、VBAの記述が |
| 1万行あたりになってきて、こんなエラーが表示されると、なかなか見つけにくいものです。 |
| 当方も解決に1時間くらいかかりました。 |
| |
| If 〜 End If 構文のミスであるにもかかわらず、「Nextに対応するForがありません」という |
| メッセージがなぜ表示されるのか? VBAはどんな判断から、このメッセージを返しているのか |
| その原理を知りたい場合は、下記のページの中央あたり、今川はるきさんの投稿が参考になり |
| ました。 |
| |
| 参考リンク:http://www2.moug.net/bbs/exvba/20080405000004.htm |
| |
| |
| TOPへ戻る |
|
|
Copyright (C) toushikenbunroku.com, All Rights Reserved.