「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) アイエルアイ総合研究所 無断転載を禁じます