条件判断ブロック
最終更新日: 2022年7月25日
「条件判断」タブのブロックは次の通りです。
「もし〜ならば」ブロックは図のように上部に「条件となるブロック」を、下部に「条件が成立した時に処理するブロック」をセットして使います。
「条件となるブロック」は一つだけです。
「条件が成立した時に処理するブロック」は複数個、挿入することができます。
ギアアイコンをクリックすると「そうでなくもし」「そうでなければ」という二つのブロックが表示されます。これをマウスで選択し、ドラッグ&ドロップすることで、「もし〜ならば」ブロックの階段をつくることができます。
「そうでなくもし」ブロックを追加することで、「もし〜ならば処理Aを、そうでなくもし〜ならば処理Bを」というような分岐処理を実現できます。
「そうでなくもし」ブロックは何段にも重ねることができます。これを「もしブロックの階段」と呼びます。一つ一つのブロックに条件ブロックをセットします。
階段の最後に「そうでなければ」ブロックを追加すると、上の条件をすべて満たさなかった場合(どれでもなかった場合)に行う処理を記述することができます。
ギアアイコンを表示した状態で、追加したブロックを選択し、左側(背景がグレーの部分)に移動することで、追加したブロックをとりはずすことができます。
「もし〜ならば」ブロックの条件部(上の部分)にセットすることができます。
ブロックの左側(「左辺」といいます)に、比較したいブロックをセットします。このブロックには「変数」または「モデルの項目」が入ります。
ブロックの右側(「右辺」といいます)に、比較したい「値」ブロックをセットします。値は固定値("0" や "1" などの数値ブロック, "名前" などの文字列ブロック)を使うこともできますし、「変数」を使うこともできます。
条件となるブロックは「1つ」しか作ることができません。しかし「かつ(または)」ブロックを組み合わせることで、複数の条件をひとつにまとめることができます。
このブロックをさらに組み合わせることができます。「〜かつ〜かつ〜かつ」を実現したい場合、「〜かつ〜」ブロックを、もう一つの「〜かつ〜」にセットします。
次のように並びを変えても意味は同じです。
判断処理は左側から順に行われます。そのため、左からみて最初に条件が
ブロックを選択し、マウスで右クリックすると、操作メニューが開きます。
"ブロックを折りたたむ" と、コンパクトな表示に切り替わります。
同じく操作メニューから「外部入力」を選ぶと、ブロックの形状が変わります。意味はかわっていません。形状だけが変わっています。
両方のブロックを何も「外部入力」とした例を示します。
「〜ではない」ブロックと組み合わせると、意味を反転させます。上の例は "Xが0ではない" となります。
Wagbyが提供する「関数」のいくつかは、戻り値が
Wagbyでは
ISBLANK関数を使った場合、未入力だけでなく、空文字 ("") かどうかの判定もできます。文字列型の場合は ISBLANK 関数を利用する方がよいです。
同様に、リストボックスの入力判定はSELECTED関数が利用できます。
このように、実際には条件判断のブロック
もし〜ならば
後述する「X =(≠/>/≧/</≦) Y」ブロックを使うことができます。
「もし〜ならば」ブロックの階段をつくる
ブロックをとりはずす
X =(≠/>/≧/</≦) Y
~かつ(または)~
Tips
false
(不成立)となった段階で、右側の判断は自動的に行われなくなります。そのため不成立になる可能性が高いものを、より左側に配置するとよいでしょう。
ブロックを折りたたむ
外部入力
~ではない
true / false
true
またはfalseを返します。これを判定ブロックと組み合わせるときに、true
ブロックやfalse
ブロックを使うことができます。
null
null
は「変数」または「(項目の)値」が "未入力"(または"未設定")という特別な意味をもちます。
関数を利用する
null
で判定するケースは多くありません。未入力の判定は次のように整理できます。
判定方法の早見表
型
判定方法
文字列
ISBLANK関数
日付/時刻/日付時刻
ISBLANK関数
数値
ISEMPTY関数
リストボックス/ラジオボタンが未入力かどうか
ISEMPTY関数
リストボックス/ラジオボタンが"未選択"かどうか
SELECTED関数
チェックボックスの選択されている数
CHECKED関数
チェックボックスに指定のID部が含まれているか
CONTAINS関数