プロが教える店舗&オフィスのセキュリティ対策術

いつもお世話になります。
VBAで分からない事があったので、質問をすることにしました。
お手数をおかけしますが、よろしくお願いします。


現在、以下のようなコードを記述しています。

例)
IF x > y AND x <= z then

”処理”

End If


値「x」がyよりも大きくて、zより小さいかもしくは同じ値の場合は処理をする。
というようなコードを記述しています。

順調に作業を進めていたのですが、1つのFunction?内に合計25個の
例で挙げたIF文を記述しているのですが、最後の25個目まで正しく処理されるでしょうか?

一つのFunctionで、IF文の使用できる回数制限みたいなものは存在するのでしょうか?
どうしても、後半の3つのIF文だけ正しく処理されなくて困っています…。


コードは何回も見直したので間違っていないと思うのです…。
もし、IF文の使用個数の制限など無いというのであれば、もう一度見直してみたいと思います。


質問は以上となります。
よろしくお願いいたします。

A 回答 (2件)

If文に回数制限はありません。


ましてや25個程度の入れ子や繰り返しで疑われるのは、機能的な制限よりも人為的ミスです。
何回も見なおして、間違ってないと思われるのに発生するからバグは怖いですね。

ありがちなミスとしては
・End Ifの記載漏れ・位置ずれ
・変数操作の誤り
・If~Elseの関係性を読み違えている

VBAならば、ステップ実行やイミディエイトウインドウでの観察を以って、
該当するIf文に差し掛かった時点での各変数の値を覗いてみることで、
問題解決への一歩と成るかもしれません。

参考URL:http://hp.vector.co.jp/authors/VA016119/step/ste …

この回答への補足

早急にご回答いただきありがとうございます!

なるほど…やはりありませんか><

End Ifの記載漏れは何回も見たので大丈夫そうですが、
変数操作の誤りが一番可能性としては高そうです…。

途中で値が変わっていないかなどを再度確認したいと思います。

参考URLも大変助かります。
ステップ実行も試してみたいと思います。

回答頂きありがとうございました。

補足日時:2013/08/23 08:23
    • good
    • 0

おそらく他のIfの仲に入ってしまい、後半3つに行かないだけです。


プログラムを見直してください。
ブレークポイントでもおいて調べてみましょう。
きっと意図しないifに入っているのだと思います。



または


if x > y then
   if x<=z then


   end if

   if x<=a then
      if n > m then

      end if

      if n >p then

      end if

   end if

end if



みたいに条件を1つに絞っていくとわかりやすいかもしれません。

この回答への補足

やはり制限は無いようですね・・・。
自分のミスということで、少し安心しました^^;
ここから全てを変えるほうがキツイので…w

ブレークポイントやコードの記述方法を変更して
再度プログラムを見直したいと思います><

ご回答頂きありがとうございました。

補足日時:2013/08/23 08:26
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!