Google apps scriptでスプレッドシートの行を移動する

Google apps scriptでスプレッドシートの行を移動するには

  • moveRows(rowSpec, destinationIndex)

を使う。

・moveRows(rowSpec, destinationIndex)
指定された範囲で選択された行を、で指定された位置に移動しますdestinationIndex。

rowSpecそれ自体は正確に移動、それをするために範囲が及ぶすべての行を選択する行の行全体又は基を表す必要はありません。

パラメーター

タイプ 説明
rowSpec Range 移動する必要がある行にまたがる範囲。
destinationIndex Integer 行を移動する必要があるインデックス。このインデックスは、行が移動される前の座標に基づいています。ソース行がグリッドから削除されている間に、既存のデータが移動された行のためのスペースを確保するためにシフトダウンされます。したがって、データは当初指定されたインデックスとは異なるインデックスで終了する可能性があります。

参照:sheet#moveRows(Range,Integer)

Google apps scriptでスプレッドシートの行を移動するスクリプト

moveRows(行範囲, 移動先の行)と指定する。

  • 移動する行範囲A1:B2としてrngに格納。
  • 移動先行をA10に指定して行数をrwに格納。

moveRows(rng,rw)で行範囲を移動するスクリプト。

/*A1:B2のテキストをA10へ移動する*/
function gyou_idou(){

//スプレッドシートAppを呼び出し
var ss = SpreadsheetApp.getActiveSpreadsheet();
//アクティブシートを取得
var sht = ss.getActiveSheet();

//A1:B2範囲を取得
var rng = sht.getRange("A1:B2");
//セルA10の行数を取得(移動先)
var rw = sht.getRange("A10").getRow();

//取得した範囲を移動
sht.moveRows(rng,rw);
//メッセージボックスに移動した内訳を表示する
Browser.msgBox("テキストを"+rw+"行の上へ移動しました");

}

/*シートをリセット*/
function clear(){

//スプレッドシートAppを呼び出し
var ss = SpreadsheetApp.getActiveSpreadsheet();
//アクティブシートを取得
var sht = ss.getActiveSheet();

//シート全体をクリア
sht.clear()

//再度A1:B2にテキストを入力
var rng = sht.getRange("A1:B2");
var val = rng.setValue("Spreadsheet.blue");

}

 

Google apps scriptでスプレッドシートの行を移動するsample

まとめ

moveRows(行範囲,移動先行)で範囲をまるごと行移動出来る。注意するのは移動先行の上に範囲が移動される

例えばA1:B2の範囲を3行目より下に移動したい場合は、移動先行をA3ではなくA5を指定する。

行範囲分を下にずらしたセルを移動先行に指定する感じ。

扱えれば行の移動がスムーズなのでとても便利。

>>スプレッドシートの列を移動する

>>スプレッドシートの指定した行の後に行を挿入する

>>スプレッドシートの行を固定する

>>スプレッドシートの行を非表示にする