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