ANDとORを併用した条件分岐を教えてください

処理進捗のフラグととある処理の実施有無のフラグの組み合わせが以下の場合にThenに進行し、それ以外の場合にElseに進行したいのですが、条件分岐一つで表現する記載方法を教えてください。
▼Thenに進行する条件▼
FLG1=1かつFLG2=0
または
FLG1=1かつFLG2=4
または
FLG1=2かつFLG2=0
または
FLG1=2かつFLG2=3

前提は以下の通りです。
FLG1:とある処理の実施有無を示すフラグで、1または2がアサインされます
FLG2:処理の進捗を示すフラグで、0~4のいずれかがアサインされます

Hi @m-minami

Try this

    Assign: FLG1 = 1
    Assign: FLG2 = 0
    If: ((FLG1 = 1 And FLG2 = 0) Or (FLG1 = 1 And FLG2 = 4) Or (FLG1 = 2 And FLG2 = 0) Or (FLG1 = 2 And FLG2 = 3))
        Then: Message Box: "Proceed to Then"
        Else: Message Box: "Proceed to Else"

Regards,

1 Like

こんにちは

VBではAndやOrよりもAndAlsoやOrElseの方がパフォーマンスが良いので基本的にはこちらになります。(短絡評価になります)

上記の文面通りですと

(FLG1=1 AndAlso FLG2=0) OrElse (FLG1=1 AndAlso FLG2=4) OrElse (FLG1=2 AndAlso FLG2=0) OrElse (FLG1=2 AndAlso FLG2=3)

ですが式を展開すると以下の様にもかけます

(FLG1=1 AndAlso (FLG2=0 OrElse FLG2=4)) OrElse (FLG1=2 AndAlso (FLG2=0 OrElse FLG2=3))
1 Like

ありがとうございました。想定通りの分岐処理ができました。

1 Like

ありがとうございます!
ご教示いただいた記載方法で想定通りの処理を実現できました。

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.