コマンドビルダーノード一覧

制御フロー(待機・くり返し)

制御ブロックは「待機」「反復処理」「反復中断」「反復スキップ」の 4 種類で、どのプランでも使えます。

待機

指定した時間だけ、次の処理に進むのを止めます。単位は「秒」「分」「時間」「日」から選べますが、1 回の待機は最大 25 秒です。それより長い値は通知なしで 25 秒に短縮されるため、長い間を作りたいときは「待機」を複数つないでください。

0 以下や数値として読めない値のときは、待機せずにそのまま次へ進みます。待機している時間も、コマンド 1 回の実行時間に数えられます。

反復処理(ループ)

「ループ本体」につないだ処理を、「繰り返し方」に従ってくり返します。くり返しが終わると(または「反復中断」で抜けると)「ループ後」へ進みます。「ループ本体」と「ループ後」は単独では削除できず、「反復処理」を削除するといっしょに消えます。

繰り返し方くり返す回数
「回数を指定」「ループ回数」の値
「リストの各項目」「繰り返すリスト」の項目数(「ループ回数」は使いません)

どちらの繰り返し方でも、くり返しの上限はプランごとに決まっており(上限とクールダウン)、超える分は通知なしで打ち切られます。

ループ回数

  • 未入力のときは 10 回です。変数も差し込めます。
  • 0 以下や数値として読めない値のときは、「ループ本体」を一度も実行せず「ループ後」へ進みます。エラーにはなりません。

リストの各項目をくり返す

「繰り返すリスト」には次のどれかを書きます。

書き方例
変数 1 つ{BSVAR_bag}
波括弧なしの変数名BSVAR_bag
全体が 1 つの式${ split({text}, ",") }

「ループ本体」の中では、今の項目を {item}、その位置(0 から数えます)を {item_index} で参照できます。名前は「項目の変数名」で変えられ、空欄なら item です。項目はくり返しを始めた時点のリストから取り出すため、本体で同じ変数を書き換えても、くり返す項目は変わりません。

リストが空のとき、リストとして読めない書き方のとき、値がリストでない(変数が未定義のときを含みます)ときは、「ループ本体」を一度も実行せず「ループ後」だけを実行します。リストが空のとき以外は、ログに「繰り返す対象がリストではないため、ループ本体を実行しませんでした」と記録されます。ビルダーでも、リストが空・読めない書き方・配列型でない変数のときは警告が出ますが、保存はできます。

項目ごとにカスタム変数(BSVAR_)を書き換えると、1 回の実行で書き込める回数(50 回)を超えた分は書き込まれずに処理が続きます。

何回目かを参照する

「ループ変数名」で決めた名前を使うと、「ループ本体」の中で今が何回目かを差し込めます。どちらの繰り返し方でも使えます。

書き方値
{ループ変数名.index}0 から数えた回数(0、1、2…)
{ループ変数名.count}1 から数えた回数(1、2、3…)

たとえばループ変数名が loop_1 なら、本文に {loop_1.count}回目の処理です と書けます。

ループ変数名と項目の変数名に使えるのは半角英数字とアンダースコアで、先頭は英字かアンダースコアです。それ以外の文字は取り除かれます。ループ変数名が空になると、ブロックごとに自動で名前が割り当てられます。

入れ子にしたループで内側と外側に同じ名前を使っても、内側が終わると外側の値は元に戻ります。

反復中断と反復スキップ

ブロック動き「ループ後」の実行
「反復中断」(break)くり返し全体をその場で終了します抜けた直後に 1 回実行されます
「反復スキップ」(continue)今回の残りを飛ばし、次の回へ進みます1 回ごとには実行されず、すべての回が終わってから実行されます

どちらも**「ループ本体」の配下でしか使えません**。配下に無いと保存時に検証エラーとなり、コマンドを保存できません。入れ子のループでは、もっとも内側のループに対して働きます。

上限

制御ブロックに関わる上限(待機時間・ループ回数・実行時間・ステップ数)は 上限とクールダウン にまとめています。上限を超えたときに表示されるメッセージは 表示されるメッセージ をご覧ください。

  • ステップ数には、ループの中のブロックがくり返すたびに数えられます。回数の多いループにブロックを多数つなぐと、上限に達しやすくなります。
  • ボタンや選択メニューでユーザーの操作を待つ処理をループの中に入れると、待っているあいだも実行時間に数えられます。反応待ちで上限を超えると、コマンドはタイムアウトします。

関連ページ

最終更新:

目次