SSpread

Q1 21
Enterキー押下でSSpread上のセルを移動したい 
[内容]
Enterキー押下でセルを右へ移動したい、また最終列まで移動したら次の行の先頭へ移動し、最終行の最終列まで移動したら、先頭行の1列目に移動したい
A1 21
SSpreadクラスのEditEnterActionプロパティを利用する事で、Enterキー押下時の動作を指定する事が可能です。
『Enterキー押下でセルを右に移動し、最終列まで移動したら次の行の先頭へ移動』は、「EditEnterAction =$EditEnterActionNext;」と指定します。

『最終行の最終列まで移動したら、先頭行の1列目に移動』は、Advanceイベントを利用して制御します。
Advanceイベントは、Tabキーや方向キーにより、スプレッドシート(SSpread)の領域外にフォーカスを移動しようとしたときに発生するイベントです。

「EditEnterAction =$EditEnterActionNext;」と指定した場合、Enterキーが右方向キーに相当しますので最終行の最終列でEnterキーを押下するとAdvanceイベントが発生します。
Advanceイベント発生時に、アクティブセルを先頭行の1列目にセットする事ができます。

[サンプルコード]
SSpread SSpread1 {
  X = 30;
  Y = 33;
  Width = 341;
  Height = 229;  
  
  MaxCols=3;
  MaxRows=5;  
  
  /* Enterキーを押したとき、アクティブセルを右のセルに移動
    最終列の場合は次の行の先頭列に移動するよう設定 */
  EditEnterAction =$EditEnterActionNext;
  
  Function OnAdvance( e ) {
   /* OnAdvance イベントハンドラ */
   if (e.AdvanceNext == $TRUE) {
    /* 最終列まで移動したら、先頭行の1列目へ移動する。 */
    SetActiveCell( 1, 1);
   }
  }
 }


管理番号:Sspd50_021
  Biz-Collections Bizの宝箱 トップへ
  Biz/Browser V・Biz/Designer V TIPS集 トップへ