「StiLL」 デザイン情報236 StiLLコマンド -- 「一度に4つ以上の条件分岐をする方法とプログラムの簡略化」 | ||||||||||||||||||||||||||||||||||||
【テーマ】 StiLLボタンの条件分岐(BtPushIf)では、一度に3つまでの分岐が上限となります。 今回は、連続実行(BtPush)ボタンを使って、一回で4つ以上の条件分岐を行ったり、全体で使うボタンの数を少なくする方法をご紹介します。 |
【方法】 <セルリンクボタン> ・ボタン連続実行(BtPush) <Excel関数> セルリンクボタンの項目内で IF関数やVLOOKUP関数を使う |
【参考】 他のセルリンクボタンでも同様の考え方で応用できます。 |
||||||||||||||||||||||||||||||||||
■ 今回の内容 | ||||||||||||||||||||||||||||||||||||
条件分岐するプログラムでは、「条件分岐(BtPushIf)」ボタンを使いますが、分岐の指定数に上限(3つまで)があります。 | ||||||||||||||||||||||||||||||||||||
また、連続実行内で条件分岐ボタンを多用すると、分岐後にそれぞれ連続実行が必要となり、全体的にボタンが多くなりがちです。 | ||||||||||||||||||||||||||||||||||||
今回は「連続実行(BtPush)」セルリンクボタンを使い、プログラムを簡素化する方法をご紹介します。 | ||||||||||||||||||||||||||||||||||||
【条件分岐プログラム例】 | ||||||||||||||||||||||||||||||||||||
![]() |
||||||||||||||||||||||||||||||||||||
【解説1】 条件分岐ボタンの代わりに「連続実行(セルリンク)」ボタンを使う | ||||||||||||||||||||||||||||||||||||
「連続実行(BtPush)」のセルリンクボタンを作成します。 | ||||||||||||||||||||||||||||||||||||
「連続実行(BtPush)」のセルリンクボタンでは、実行するボタンの「ボタン名,シート名」を記述します。 | ||||||||||||||||||||||||||||||||||||
セルリンクボタンの項目は5つまでですが、項目内を数式で作成することで、実行させるボタンをいくつも変えることが可能になります。 | ||||||||||||||||||||||||||||||||||||
【連続実行ボタンの設定例】 | ||||||||||||||||||||||||||||||||||||
![]() |
||||||||||||||||||||||||||||||||||||
【項目の設定例】 | ||||||||||||||||||||||||||||||||||||
例えば、セルA2の値が「1」だったらボタンを実行する場合、項目を以下の数式で作成します。 | ||||||||||||||||||||||||||||||||||||
![]() |
||||||||||||||||||||||||||||||||||||
【解説2】 条件が多数ある場合 | ||||||||||||||||||||||||||||||||||||
判断する条件が多数ある場合、「IF」条件もその分増えて、数式が複雑になります。 | ||||||||||||||||||||||||||||||||||||
その場合は、別途リストを作成し、VLOOKUP関数などで指定するすると分かりやすくなります。 | ||||||||||||||||||||||||||||||||||||
【リストの例】 | ||||||||||||||||||||||||||||||||||||
![]() |
||||||||||||||||||||||||||||||||||||
【項目の設定例】 | ||||||||||||||||||||||||||||||||||||
![]() |
||||||||||||||||||||||||||||||||||||
!注意 | ||||||||||||||||||||||||||||||||||||
リストに無い値は「#N/A」になり、ボタン実行時にエラーとなって処理が中断されてしまいます。 | ||||||||||||||||||||||||||||||||||||
セルA2をリスト内にある数値を表示する数式にするか、VLOOKUP式にエラー条件(IFERROR等)を加えてエラー表示を防ぎましょう。 | ||||||||||||||||||||||||||||||||||||
【解説3】 連続実行全体の簡略化 | ||||||||||||||||||||||||||||||||||||
各項目の数式やリストの作成などは手間ですが、 | ||||||||||||||||||||||||||||||||||||
連続実行全体の流れは簡略化され、後に発生する条件変更にも柔軟に対応できることになります。 | ||||||||||||||||||||||||||||||||||||
【変更後の連続実行の流れ】 | ||||||||||||||||||||||||||||||||||||
![]() |
||||||||||||||||||||||||||||||||||||
!ポイント | ||||||||||||||||||||||||||||||||||||
「ボタン名,シート名」項目がすべて空欄の場合、何も実行されず次のボタンが実行されることになります。 | ||||||||||||||||||||||||||||||||||||
何も実行させず、スルーすることも一つの機能となります。 | ||||||||||||||||||||||||||||||||||||
!注意 | ||||||||||||||||||||||||||||||||||||
1セルリンクボタン項目内の数式は「ボタン実行前に確定」する必要があります。 | ||||||||||||||||||||||||||||||||||||
1項目目を実行した結果、2項目目が変わるような数式を組んでも、反映されません。 | ||||||||||||||||||||||||||||||||||||
その場合は、ボタンを分けて作成しましょう。 | ||||||||||||||||||||||||||||||||||||
■ 参考 | ||||||||||||||||||||||||||||||||||||
例えば、セルA1に「空欄だったら今日の日付」を、「入力済みならそのまま(同じ日付)」をセルにセットしたい場合、 | ||||||||||||||||||||||||||||||||||||
値を挿入するボタン「セル値セット(BtSetValue)」などの項目に 「 =IF(A1="",TODAY(),A1) 」というような数式を入れれば、 | ||||||||||||||||||||||||||||||||||||
条件分岐ボタンは不要になります。 | ||||||||||||||||||||||||||||||||||||
セルリンクボタンの項目はすべて条件分岐できる発想で、プログラムの簡略化を目指しましょう! | ||||||||||||||||||||||||||||||||||||
条件分岐については、以下のバックナンバーもご参考にしてください。 | ||||||||||||||||||||||||||||||||||||
「StiLL」 デザイン情報221 StiLLコマンド-- メッセージのある処理の中断や分岐処理を簡単に | ||||||||||||||||||||||||||||||||||||
以上 | ||||||||||||||||||||||||||||||||||||
(各ボタンの設定内容の詳細はStiLLヘルプをご確認ください) | ||||||||||||||||||||||||||||||||||||
Copyright(C) アイエルアイ総合研究所 無断転載を禁じます | ||||||||||||||||||||||||||||||||||||