- 締切済み
【VBA】真の場合、何もしない処理をしたい
VBAで困っています。 (1)A=BかつC=D (2)A≠BかつC=D (3)A=BかつC≠D (4)A≠BかつC≠D 以上4つの条件がある時、(1)以外では処理をしたいです。 For n = 1 To 10 If (1) 何もしない処理 end if (2)、(3)、(4)にしたい処理 Next 条件(1)では、何もせずに、Nextまで飛んで、次のnで処理をする方法は有りますか?
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- gosui
- ベストアンサー率50% (1/2)
ご質問の状況がよくわかりませんが、 iif 2 or 3 or 4 then 処理 end if では駄目なのでしょうか。
- tsubu-yuki
- ベストアンサー率46% (179/386)
簡潔に。 If Not 条件 Then という使い方がありますよ。 ま、つまり・・ For n = 1 To 10 If Not WorksheetFunction.And(A = B, C = D) Then MsgBox "True" Else MsgBox "False" End If Next こんな具合で、ご提示の(1)の条件以外では「True」のメッセージボックスが出ます。 「何もしない」ならElseは不要ですよ。
- 山田 太郎(@f_a_007)
- ベストアンサー率20% (955/4574)
Q、次のnで処理をする方法は有りますか? A、その意図は? 普通に考えたら、条件(1)の場合に For-Next そのものの実行を回避するのでは・・・
- imogasi
- ベストアンサー率27% (4737/17069)
IF 文をつかttら仕舞いでしょう。何が陸奥kしいのかな 「何もしない」は、そのケース分けで、処理ステートメントを1行も書かなければしまいでは。 複雑な場合分けの場合、心配なのは、この組み合わせで、4通りですべてか? 記述が漏れたケースの時に、行く処理が予想外の処理でないかなどだと思う。 ーー 処理をしたいケースだけ書けば、該当しない時は何も処理されないはずだから、かんげることは必要でも、プログラムでは、記述を除外してよいケースがあろう。 こういうのは人に聞くのでなく。実際のレを使ってテストして、質問者が確信を持つものだ 。 自分でデータ例を作る方に労力を使え。」 また学校で習う「ベン図」式でも書いて考えること。 https://www.google.co.jp/#q=%E3%83%99%E3%83%B3%E5%9B%B3+%E5%95%8F%E9%A1%8C&*&spf=1
- chie65536(@chie65535)
- ベストアンサー率44% (8740/19838)
For n = 1 To 10 If Not (A=B And C=D) then (2)、(3)、(4)にしたい処理 end if Next または For n = 1 To 10 If A<>B Or C<>D then (2)、(3)、(4)にしたい処理 end if Next または For n = 1 To 10 If A=B And C=D Then rem 何もしない処理 Else (2)、(3)、(4)にしたい処理 end if Next または For n = 1 To 10 If A=B And C=D Then GoTo Continue end if (2)、(3)、(4)にしたい処理 Continue: Next ブール演算の基本 (あ)A、かつ、B=(Aでない、または、Bでない)の否定 (い)A、または、B=(Aでない、かつ、Bでない)の否定 (う)Aでない、かつ、Bでない=(A、または、B)の否定 (え)Aでない、または、Bでない=(A、かつ、B)の否定 を覚えましょう。 今回の場合 For n = 1 To 10 If (1) then 何もしない処理 end if (2)、(3)、(4)にしたい処理 Next は For n = 1 To 10 If (1) then 何もしない処理 else (2)、(3)、(4)にしたい処理 end if Next と書けます。 条件を「(1)なら」から「(1)でないなら」に変えれば For n = 1 To 10 If not (1) then (2)、(3)、(4)にしたい処理 else 何もしない処理 end if Next に書き換えできます。 「ElseからEnd ifまで、何もしない」のであれば「Else以降を省略可能」ですから For n = 1 To 10 If not (1) then (2)、(3)、(4)にしたい処理 end if Next に出来ます。 一方「(1)でない」つまり「not (A=B And C=D)」は、ブール演算の基本を参考に「A<>B Or C<>D」に書き換えできます。つまり For n = 1 To 10 If A<>B Or C<>D then (2)、(3)、(4)にしたい処理 end if Next と書けます。