| 「StiLL」 デザイン情報221 StiLLコマンド-- メッセージのある処理の中断や分岐処理を簡単に | ||||||||||||||||||||||||||||||||||
| 【テーマ】 「処理を開始してよろしいですか?」、「〇〇の為中断しました」など、任意または自動でメッセージを表示して、処理を継続・中断・分岐させたい場面があると思います。 今回はメッセージ付きの条件分岐事例を3つ紹介します。 |
【方法】 @メッセージボックス(BtMessage) A条件分岐メッセージ(BtMessageCell) Bメッセージ分岐実行(BtMessageIf) それぞれ連続実行(BtPush)ボタンを使って実行します |
【参考】 多くの中断条件がある場合、IF式でエラー判断とメッセージをそれぞれ作成し、最後にひとつのセルにまとめ、ボタンのメッセージ項目とリンクさせることで、 ひとつのボタンで複数のエラーメッセージを表示・処理中断させることが可能です |
||||||||||||||||||||||||||||||||
| ■ 今回の内容 | ||||||||||||||||||||||||||||||||||
| StiLLを使った条件判断・メッセージ表示・分岐処理には、「条件分岐実行(BtPushIf)」ボタンがありますが、 | ||||||||||||||||||||||||||||||||||
| 分岐にそれぞれのボタンを作成して手順が多くなったり、プログラムが複雑になってたりしてませんか。 | ||||||||||||||||||||||||||||||||||
| 今回は、他のメッセージ付きのボタンで、もっとも簡易に条件判断・分岐処理をする方法を3つ紹介します。 | ||||||||||||||||||||||||||||||||||
| 【プログラムの例】:連続処理の開始前、処理中に処理の分岐があるケース | ||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||
| [キャンセル] | ||||||||||||||||||||||||||||||||||
| [OK] | ||||||||||||||||||||||||||||||||||
| 「データあり」 | 「データなし」 | |||||||||||||||||||||||||||||||||
| 今回は、以下3つボタンを使って、同様の事が少ない手順で作成できる方法を紹介します。 | ||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||
| ■ CASE1:確認メッセージのみで条件分岐 | ||||||||||||||||||||||||||||||||||
| 実行前の確認など、必ずメッセージを表示させて、「OK」・「キャンセル」を選択する場合は、以下の方法が使えます。 | ||||||||||||||||||||||||||||||||||
| @ 「メッセージボックス(BtMessage)」ボタンを作成します。 | ||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||
| A 「ボタン連続実行(BtPush)」ボタンを作成します。 | ||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||
| プログラムの流れ | ||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||
| →[キャンセル]で自動で中断 | ||||||||||||||||||||||||||||||||||
| ■ CASE2:内容を判断してメッセージを表示する条件分岐 | ||||||||||||||||||||||||||||||||||
| 「条件分岐メッセージ(BtMessageCell)」ボタンは、条件一致時のメッセージ表示と以降の処理実行の有無を指定できるボタンです。 | ||||||||||||||||||||||||||||||||||
| 処理の実行に必要な条件が揃っていない、処理を実行したが結果が1件も無かったなど、以降の処理が無意味となる場合、 | ||||||||||||||||||||||||||||||||||
| メッセージを表示して処理を中断(継続も可)させるものです。 | ||||||||||||||||||||||||||||||||||
| @ 処理を継続するか判断するセルを準備します。 | ||||||||||||||||||||||||||||||||||
| 条件判断 | ||||||||||||||||||||||||||||||||||
| × | ※ 条件判断セルは「IF」関数で、「偽」の場合に任意の文字を表示させます。 | |||||||||||||||||||||||||||||||||
| A 「条件分岐メッセージ(BtMessageCell)」ボタンを作成します。 | ||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||
| プログラムの流れ | ||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||
| →メッセージを表示して中断 | ||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||
| 条件判断 | ||||||||||||||||||||||||||||||||||
| × | ||||||||||||||||||||||||||||||||||
| ■ CASE3:メッセージを表示して、選択したボタンから処理を分岐 | ||||||||||||||||||||||||||||||||||
| 「メッセージ分岐実行(BtMessageIf)」ボタンはメッセージを表示し、選択したボタンから以降の処理を分岐するボタンです。 | ||||||||||||||||||||||||||||||||||
| 「条件分岐実行(BtPushIf)」ボタンとほぼ同じですが、メッセージボタンを別途作らなくて良い分、簡素化できます。 | ||||||||||||||||||||||||||||||||||
| ボタンの設定例 | ||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||
| プログラムの流れ | ||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||
| [キャンセル](自動中断) |
|
|||||||||||||||||||||||||||||||||
| [はい] | [いいえ] | |||||||||||||||||||||||||||||||||
| ■ 参考:中断条件と表示メッセージがたくさんある場合 | ||||||||||||||||||||||||||||||||||
| CASE2で、条件判断したいことがいくつもあると、一つ一つボタンを作るのは面倒です。 | ||||||||||||||||||||||||||||||||||
| セル上に中断条件と表示するメッセージを「IF」関数で作成し、エラーメッセージを一つのセルにまとめることで、 | ||||||||||||||||||||||||||||||||||
| 一つのボタンで複数のチェックが可能になります。 | ||||||||||||||||||||||||||||||||||
| 設定例 | ||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||
| 実行表示例 | ||||||||||||||||||||||||||||||||||
| 「エラーメッセージ」項目には、各実行チェック項目のセル(メッセージ)を連結する式を入れます | ||||||||||||||||||||||||||||||||||
| 例: | =IF(D231="","",D231&CHAR(13))&IF(D232="","",D232&CHAR(13))&IF(D233="","",D233&CHAR(13)) | |||||||||||||||||||||||||||||||||
| 「保存条件判断」項目は、「エラーメッセージ」項目にメッセージがあれば(空白以外)、ボタンの条件値 "×"を表示する式を入れます | ||||||||||||||||||||||||||||||||||
| 例: | =IF(D234<>"","×","") | |||||||||||||||||||||||||||||||||
| 以上 | ||||||||||||||||||||||||||||||||||
| (各ボタンの設定内容の詳細はStiLLヘルプをご確認ください) | ||||||||||||||||||||||||||||||||||
| Copyright(C) アイエルアイ総合研究所 無断転載を禁じます | ||||||||||||||||||||||||||||||||||