「StiLL」 デザイン情報168 StiLLコマンド--カレンダーで指定シテイ範囲ハンイ外ガイの日付ヒヅケが入力ニュウリョクされた時トキエラーにする方法ホウホウ
           
                             
  ■ カレンダーで入力ニュウリョクできる日付ヒヅケの範囲ハンイを制限セイゲンしたい場合バアイ、選択した日付が指定範囲外であればエラーメッセージを表示し、選択した日付が指定範囲内であればそのまま日付を入力ニュウリョクする方法をご紹介します。     ■ 「セルへジャンプ(BtCell)」 と 「カレンダー表示(BtCalendar)」 の連続レンゾク実行ジッコウで一旦別のセルにカレンダーで選択した日付を入イれておき、その日付が範囲内なのか否かで条件分岐実行を行います。     ■ セルリンクボタンの 「BtCalendar」 を使用すると日付をセットするセルを指定することができるので、「セルへジャンプ(BtCell)」で選択セルを切り替える必要が無くなります。  
  対応Ver. :StiLL-X V1.0以降
対応種類:StiLL Dev・Pro・Std
    対応Ver. :StiLL-X V1.0以降
対応種類:StiLL Dev・Pro・Std
    対応Ver. :StiLL-X V1.0以降
対応種類:StiLL Dev・Pro・Std
 
                             
■ 今回コンカイの内容ナイヨウ  
日付ヒヅケを入力ニュウリョクするセルで入力ニュウリョクできる日付ヒヅケの範囲ハンイを制限セイゲンしたい場合バアイ、Excelの入力ニュウリョク規則キソクを使ツカうと便利ベンリですが、
カレンダーで日付ヒヅケを選択センタクしたい場合、「カレンダー表示(BtCalendar)」 で日付を入力ニュウリョクした場合は入力規則が働かないため、
入力ニュウリョク規則キソクで設定セッテイした範囲ハンイ外ガイの日付ヒヅケも入力ニュウリョクできてしまいます。
また、「カレンダー表示(BtCalendar)」のカレンダーで選択センタクできる日付ヒヅケの範囲ハンイを設定セッテイすることはできません。
ですので今回コンカイは、「BtCalendar」 で選択センタクした日付が指定シテイ範囲ハンイ外ガイであればエラーメッセージを表示ヒョウジし、
選択センタクした日付が指定シテイ範囲ハンイ内ナイであればそのまま日付ヒヅケを入力ニュウリョクする方法ホウホウをご紹介ショウカイします。
■ 作成サクセイ方法ホウホウ    
今回コンカイは入力ニュウリョクセルに日付ヒヅケをセットする前マエに、選択センタクした日付ヒヅケが範囲ハンイ内ナイかどうかをチェックする必要ヒツヨウがあるので、
いったん日付ヒヅケセット用ヨウのセルにカレンダーで選択センタクした日付ヒヅケをセットし、その日付ヒヅケが指定シテイ範囲ハンイ内ナイかどうかで条件ジョウケン分岐ブンキを行オコナいます。
そのため下シタの図ズのように、日付セット用のセルを入力ニュウリョクセルの下シモに用意ヨウイし、プログラムの完成カンセイ後ゴこの行ギョウは非表示ヒヒョウジにします。
なお、入力ニュウリョクセルのセルの表示ヒョウジ形式ケイシキは日付ヒヅケの形式ケイシキにしてください。
StiLLボタンの 「カレンダー表示(BtCalendar)」 はカレンダーで選択センタクした日付ヒヅケを選択センタク中チュウのセルにセットする機能キノウです。
なので日付セット用のセルにセットするためには、 いったん 「セルへジャンプ(BtCell)」 で日付セット用のセルを選択センタク状態ジョウタイにし
「カレンダー表示(BtCalendar)」 で日付ヒヅケセット後ゴ、もう一度イチド 「セルへジャンプ(BtCell)」 で入力ニュウリョクセルを選択センタク状態ジョウタイにします。
プログラムは、3つのボタンと条件分岐実行ボタンを連続実行することで実現できます。
   プログラムの流れ
各カクボタンの設定セッテイのポイントをご説明セツメイします。
�@「セルへジャンプ(BtCell)」
�A「カレンダー表示(BtCalendar)」
   ボタンテンプレートの編集ヘンシュウタブにある 「BtCalendar」 機能キノウをそのまま使用シヨウします。
�B「セルへジャンプ(BtCell)」
�C「条件分岐実行(BtPushIf)」
    日付セット用のセルにセットされた日付ヒヅケが範囲内かどうかで条件ジョウケン分岐ブンキを行オコナいます。
    下シタの図ズの例レイでは G28 セルを 「BtPushIf」 ボタンの 「セル値から分岐」 で参照するセルにしています。
    Excelの関数カンスウで日付ヒヅケセット用のセルにセットされた日付が範囲ハンイ内ナイの場合バアイは"○"、範囲ハンイ外ガイの場合バアイは"×"になるようにしています。
    
    「セル値から分岐」 で参照するセルが "○" の場合とそれ以外で条件分岐実行を行うようにします。
�C-1「複数セル値セット(BtSetMultiCell)」
       「セル値から分岐」 で参照するセルが "○" の場合、「BtSetMultiCell」 で
       日付セット用のセルにセットした値を入力セルに入れます。
    ◇ご参考
          「BtSetMultiCell」 の代カわりに 「セルデータコピー (BtCellCopy)」 で値アタイをコピーしても実現できますが、
          「BtCellCopy」 はコピー先サキのシートに保護ホゴがかかっていると実行ジッコウできないので、保護がかかっている場合は
          コピーする前マエに保護ホゴを解除カイジョし、コピー後ゴに再フタタび保護ホゴを設定セッテイするような連続レンゾク実行ジッコウ処理ショリが必要ヒツヨウになります。
          StiLLLボタンの 「セル値セット(BtSetValue)」 ですと、セット値チをセル参照サンショウできないため、
          今回コンカイの例レイでは使用シヨウできません。
�C-2「メッセージボックスを表示(BtMessage)」
       「セル値から分岐」 で参照するセルが "○" 以外イガイの場合、「BtMessage」 でエラーメッセージを表示します。
あとは、�@〜�Cのボタンをボタン連続レンゾク実行ジッコウボタンに設定セッテイし、そのボタン連続実行ボタンを入力ニュウリョク画面ガメンのボタンから実行ジッコウできるようにします。
最後サイゴに日付セット用のセルの行ギョウを非表示ヒヒョウジにして出来上デキアがりです。
■ ご参考サンコウまでに  
今回コンカイはStiLLボタンの 「BtCalendar」 を使用シヨウする方法ホウホウでご説明セツメイしましたが、
セルリンクボタンの 「BtCalendar」 を使用シヨウすると日付ヒヅケをセットするセルを指定シテイすることができるので、
「BtCell」で選択セルを切り替える必要が無くなります。
   プログラムの流れ
  ◇ご参考
       セルリンクボタンの 「BtSetValue(セルに値をセットする)」 は、セット値を数式スウシキでリンクできるので、
       �A-1 「BtSetMultiCell」 の代カわりに値アタイを入力ニュウリョクする機能キノウとして使用シヨウできます。
(各ボタンの設定内容の詳細はStiLLヘルプをご確認ください)
Copyright(C) アイエルアイ総合研究所 無断転載を禁じます