- 締切済み
【ExcelVBA】IF条件を満たしているのに、IF条件のところで止まってしまう
Sub test1() 変数1 = IsEmpty(Range("C1")) If Range("A1") > 0 And Range("B1") = 0 And 変数1 = True Then test2 End If End Sub 止まったときのデバッグでの表示は Range("A1")は「100」(セルの中身) Range("B1")は「0」(セルの中身) 変数1はRange("C1")がエラー表示なので「True」 すべての条件を満たしているのですが、 IF条件のところで止まってしまいます。 (IF条件のところの1行が黄色くハイライトになっている状態) 止まったデバッグの後に、F5を押して実行させると、 IF条件の続きから実行されて、test2が実行されて処理が終了します。 何で、IF文のところで一度止まってしまうのかわかりません。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- SePapa
- ベストアンサー率50% (47/94)
こんにちは。 失礼かもしれませんが、一応確認します。 該当のステップでブレークポイントを 設定しているということはないでしょうか。 実行してない状態でマクロのソース見て頂いて、 もし該当行の右端に茶色の●印がついて行全体が茶色で 反転表示されてるのであればブレークポイントとなってますので 実行すると必ずそのステップで実行停止します。 もしそうだったのであれば●印をクリックして 表示を消して保存すればブレークポイントは はずれます。 よろしくお願いします。
- web2525
- ベストアンサー率42% (1219/2850)
撒く路上にはへんなところが無いので、エラーになっていないのであれば、その部分にストップポイントを設定しているのでは?
お礼
コードに間違いは無いことが確認できました。 ありがとうございました。
- hana-hana3
- ベストアンサー率31% (4940/15541)
>変数1はRange("C1")がエラー表示なので「True」 そのような決まりはありません。 エラー値はエラーとして取得するので、書かれたような真偽の判定はできません。 ISERROR関数等を使ってエラーを検出する事になります。 http://excel.onushi.com/function/iserror.htm
補足
ご返答誠にありがとうございます。 申し訳ございません。 『変数1はRange("C1")がエラー表示なので「True」』のところですが、 誤記でした。 Range("C1")が空白だった場合、Trueです。 セルが空白かどうかを判断するため、IsEmpty(Range("C1"))を使用しました。
お礼
ブレークポイントは設定してません。 ご指摘いただいたとおり、 コード上は問題が無いようですね。 コードに間違いが無いということがわかったので助かりました。 誠にありがとうございました。 試行錯誤して、原因を見つけてみます。