「StiLL」 デザイン情報236 StiLLコマンド -- 「一度に4つ以上の条件分岐をする方法とプログラムの簡略化」
                             
  【テーマ】
StiLLボタンの条件分岐(BtPushIf)では、一度に3つまでの分岐が上限となります。
今回は、連続実行(BtPush)ボタンを使って、一回で4つ以上の条件分岐を行ったり、全体で使うボタンの数を少なくする方法をご紹介します。
    【方法】
<セルリンクボタン>
・ボタン連続実行(BtPush)

<Excel関数>
セルリンクボタンの項目内で
 IF関数やVLOOKUP関数を使う
    【参考】
他のセルリンクボタンでも同様の考え方で応用できます。
 
           
                             
■ 今回の内容                        
条件分岐するプログラムでは、「条件分岐(BtPushIf)」ボタンを使いますが、分岐の指定数に上限(3つまで)があります。
また、連続実行内で条件分岐ボタンを多用すると、分岐後にそれぞれ連続実行が必要となり、全体的にボタンが多くなりがちです。
今回は「連続実行(BtPush)」セルリンクボタンを使い、プログラムを簡素化する方法をご紹介します。
【条件分岐プログラム例】
No の記号 単色塗りつぶし
【解説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) アイエルアイ総合研究所 無断転載を禁じます