• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBA case判定で)

VBAのcase判定でTrueなのに、Trueと判定されない問題の解決策

このQ&Aのポイント
  • VBAを独学中の初心者です。特定の文字列が含まれている場合にTrueと判定されるはずですが、実際には次のCaseに移行してしまいます。この問題の解決策を教えていただきたいです。
  • セルの値に対してInStr関数を使用して文字列を検索し、条件に合致した場合に別の文字列に置換しています。しかし、特定の文字列が入っているにもかかわらずTrueと判定されない問題が発生しています。
  • よりスマートな方法があれば、併せて教えていただきたいです。VBAのCase判定において、特定の文字列を検索し、条件に合致した場合に別の文字列に置換する方法を教えていただけないでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • maiko0318
  • ベストアンサー率21% (1483/6969)
回答No.2

Select Case h ではなくて、 Select Case True  にしたら動くかも(テストできないので)

-antsu-
質問者

お礼

早速の回答ありがとうございます! Select Case True で、判定できました。 true=-1 となるんですね。 勉強になりました。

その他の回答 (1)

  • maiko0318
  • ベストアンサー率21% (1483/6969)
回答No.1

Select Case h Case InStr(h, "早い") > 0   h = Replace(h, "早い", "a")   Case InStr(h, "遅い") > 0 h = Replace(h, "遅い", "b") これはhがいくらかを聞いていますので、 h == (InStr(h, "早い") > 0) こういう判断がなされます。 この文章は間違いですよね。 処理としてはInStr(h, "早い")=1 だというなら h == true と解釈されます。true=-1 なので h == -1 これは偽ですね。

関連するQ&A