「StiLL」 デザイン情報289 コマンド -- 「月」を選択するスピンボタンをループさせる方法
                             
  【テーマ】
「スピンボタン」オブジェクトで年月を選択をする仕組みを作成するとき、1月→12月→1月またはその逆に値を送る(ループ)させる方法を紹介します。
    【方法】
スピンボタンオブジェクト、「セル値入力(BtSetValue)」ボタン、「システムテンプレート(StiLLAUTO)」および数式を使って作成します。
  【参考】
「年」も自動的に変わるようにつくるとさらに便利です。
 
           
                             
■ 今回の内容   
年月を指定する仕組みを作る際に、スピンボタンオブジェクトを使うことができますが、
月の指定は「1(月)」・「12(月)」を起終点に、上下ボタンを往復して指定することになります。
特に年末や年初に、前月や翌月の指定をしたい時などは、11か月分クリックするので、不便です。
今回は、12月の次は1月、1月の前は12月と送られる仕組みを作成する方法をご紹介します。
【イメージ】
■ 考え方・条件
スピンボタンは「最小値」・「最大値」を指定して、選択値をセルとリンクさせる設定になります。
指定した範囲外はボタンが機能しませんが、リンク先のセル値をStiLLで変更することで、
スピンボタンがその後の操作を続けることが可能になります。
■ 作成手順
手順1:ボタンとリンクするセルと、次の月をセットするセルを用意する
スピンボタンをリンクさせるセルと、そのリンクセルに次にセットする値(月)が入ったセルを用意します。
本例では解りやすくするために、それぞれのセルに「リンクセル」「次の月」と名前を定義します。
手順2:スピンボタンの作成
「StiLL」>「ボタンテンプレート」>「開発用」タブにある「スピン」ボタンを選択し、貼り付けます。
手順3:スピンボタンの設定
スピンボタンを右クリックし、「コントロールの書式設定」を選択します。
設定画面で、「最小値」・「最大値」・「リンクするセル」を設定します。
月の指定なので、「最小値:1」・「最大値:12」とし、リンクするセルは手順1で作成した名前を入力します。
手順4:次の月をセットするボタン「セル値セット(BtSetValue)」ボタンの作成
「StiLL」>「セルリンクボタン」>「メニューバー」>「書式」にある「BtSetValue」ボタンを選択し、貼り付けます。
手順5:「セル値セット(BtSetValue)」ボタンの設定
作成した「セル値セット(BtSetValue)」ボタンの以下項目に、数式を利用して設定します。
セット値:=IF(AND(次の月=12,リンクセル=12),1,IF(AND(次の月=1,リンクセル=1),12,リンクセル))
!ポイント
通常は同じ月をセットし、12月と1月が揃ったら1または12を表示する数式です
対象範囲:="次の月"&IF(OR(リンクセル=1,リンクセル=12),",リンクセル","")
!ポイント
通常は「次の月」セルのみ値をセットし、12月と1月が揃った「次の実行時」に、「リンクセル」側の値も変える仕組みの数式となります。
1月・12月以外の動き
スピンボタンクリック時、@〜Bの順に値が変わっていきます。(Bは後述)
1月・12月の動き
リンクセルが変わらず、1または12が揃った時に双方のセルに値をセットします。(手順は後述)
■ スピンボタンとStiLLボタンの関連付け
ここまでで月が変わる仕組ができました。
これをスピンボタンから実行したいのですが、特殊なオブジェクトの為、直接実行することができません。
StiLLの「システムテンプレート」を使用して、「スピンボタンが実行された時」というイベントで実行できるようにします。
手順6:「システムテンプレート(StiLLAUTO)」の挿入
「StiLL」>「システムテンプレート」>「開発用シート」より「StiLLAUTO」を選択、作成中のブックに挿入します。
手順7:イベント発生時実行ボタンの設定
挿入された「StiLLAUTO」シートの「コンボボックス連動連続ボタン」をクリックし、作成した「セル値セット(BtSetValue)」ボタンを実行するように設定します。
手順8:オブジェクト名を合わせ、機能の関連付けをする
作成した双方のボタンを同じオブジェクト名にすると、ボタン同士が関連付けされ、実行されるようになります。
「StiLLAUTO」シート側のボタンには、「PushStiLLPUSH」という名称がつけられていますので、同じ名称をスピンボタンの方にも定義します。(同じなら別の名称でも可)
手順9:スピンボタンに、マクロ「PushStiLL」を定義する
スピンボタンに、上記で作成したボタンを実行させるためのマクロ「PushStiLL」を定義します。
※ イベント発生時の仕組みについて詳細を確認したい場合は、
「StiLLヘルプ」>「StiLLの構造と管理」>「オブジェクトのイベントが発生したときに StiLL ボタンを実行する方法 (PushStiLL)」をご参照ください。
スピンボタンや選択した月の表示などは、操作する画面としてデザインしたシート上に配置してください。
■ ご参考までに
1月・12月の切替えでは年も変わりますので、併せて自動的に変更されれば、さらに便利になります。
(各ボタンの設定内容の詳細はStiLLヘルプをご確認ください)  
Copyright(C) アイエルアイ総合研究所 無断転載を禁じます