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

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

  • moveColumns(columnSpec, destinationIndex)

を使う。

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

columnSpecそれ自体は正確に移動、それをするために範囲が及ぶすべての列を選択する列の列全体またはグループを表す必要はありません。

パラメーター

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

参照:sheet#movecolumnscolumnspec-destinationindex

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

スプレッドシートと記入したA1:B10セルを右に2列動かした。実際に動かす列数は5だが、5列目の直前に範囲が移動になる。

function clear()でシートの値を元に戻す。

function retu_idou()で列を移動する。

/*スプレッドシートの列を移動する*/
function retu_idou() {

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

//A1:B10を取得
var rng = sht.getRange("A1:B10");
Logger.log(rng);
//取得した範囲に「スプレッドシート」と記入
var val = rng.setValue("スプレッドシート");
//動かしたい列数
var cl = 5

//列を動かす
sht.moveColumns(rng,cl);
//メッセージボックスにテキストをcl列動かした旨を表示
Browser.msgBox("テキストを"+cl+"列、動かしました");
}


/*スプレッドシートの列を移動する*/
function clear(){

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

//元の値を作成する
var rng = sht.getRange("A1:B10");
var val = rng.setValue("スプレッドシート");

}

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

まとめ

moveRowRows()と同じく、動かす列数の直前に値が移動する。

もしAB列を5列目より後ろに移動するなら下記のように書ける。

ver AB = sht.getRange(A1:B1);

sht.moveColumns(AB,7);

移動する列数-範囲列数で移動後の列が求められる。

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

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

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

>>スプレッドシートの列を削除する

>>スプレッドシートの指定した列の前に複数の列を挿入する