SSpread

Q1 31
SSpreadで行(列)の挿入、削除を行う
[内容]
スプレッドシート上で右クリックで行(列)の挿入、削除を行うにはどうすればよいか


A1 31
ポップアップメニューの表示と組み合わせて、以下サンプルのような行(列)の挿入・削除機能を実装する事が可能です。



[サンプルコード]
・・・(略)・・・
SSpread SSpread1 {
 ・・・(略)・・・
 Function OnRClicked( e ) {
  var xml_txt = "<?xml version=\"1.0\" encoding=\"SHIFT_JIS\"?>
   <menudefine>
   <menuitem id=\"1\" title=\"挿入\" />
   <separator />
   <menuitem id=\"2\" title=\"削除\" />
   </menudefine>";
   
  var domimpl = new xmlDOMImplementation;
  var dom = domimpl.parse(xml_txt);  
  	
  /* XMLデータをpopupMenuへセット */
  var id = popupMenu(dom);
  
  /* ブロック選択判定用変数 */
  var colStart = 0;
  var rowStart = 0;
  var colEnd = 0;
  var rowEnd = 0;
  	
  /* 挿入行・削除行カウント変数 */
  var insertCnt = 0;
  var deleteCnt = 0;
  ・・・(略)・・・
  if(id == 1){
    /* 行単位で選択した場合 */
    if(colEnd == -1){
      /* 挿入行数を計算する */
      insertCnt = rowEnd - rowStart + 1;
      
      /* 行を選択した分挿入する */
      InsertRows(rowStart, insertCnt);
      
    /* 列単位で選択した場合 */
    }else if(rowEnd == -1){
      /* 挿入列数を計算する */
      insertCnt = colEnd - colStart + 1;
      
      /* 列を選択した分挿入する */
      InsertCols(colStart, insertCnt);
    }
    
  }else if(id == 2){
    /* 行単位で選択した場合 */
    if(colEnd == -1){
      /* 削除行数を計算する */
      deleteCnt = rowEnd - rowStart + 1;
      
      /* 行を選択した分削除する */
      DeleteRows(rowStart, deleteCnt);
      
      /* 列単位で選択した場合 */	
    }else if(rowEnd == -1){
      /* 削除列数を計算する */
      deleteCnt = colEnd - colStart + 1;
      
      /* 列を選択した分削除する */
      DeleteCols(colStart, deleteCnt);
    }
  }
 }
}

・新規行(列)の挿入
 行を挿入する場合はInsertRowsメソッド、列を挿入する場合はInsertColsメソッドを使います。
 挿入する直前の行(列)番号を第1引数に、挿入したい行(列)数を第2引数に設定します。
 サンプルでは、ブロック選択の開始セルと終了セルを取得し、挿入する行(列)数を計算してい
 ます。

・選択行(列)の削除
 行を削除する場合はDeleteRowsメソッド、列を削除する場合はDeleteColsメソッドを使いま
 す。
 削除範囲の先頭行(列)の番号を第1引数に、削除したい行(列)数を第2引数に設定します。
 サンプルでは、ブロック選択の開始セルと終了セルを取得し、削除する行(列)数を計算してい
 ます。

※注意
 行(列)を挿入する場合、MaxRowsプロパティやMaxColsプロパティで設定した最大行(列)数は
 変わりません。
 最後の行(列)に設定されていたデータは、挿入することにより失われます。
 行(列)を削除した場合、MaxRowsプロパティやMaxColsプロパティで設定した行(列)数は変わ
 りません。
 スプレッドシートの最後に空白行(列)が自動的に追加されます。

実際の挙動については、CRSファイル形式のサンプル
 「SSpreadで行(列)の挿入、削除を行う(Sspd50_031.zip)」
をご確認ください。

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