Google Apps Scriptで最終行に指定の値をコピーする方法

プログラミング

特定のシートの最終行の下に、指定の値をコピーしていくためのコードを紹介します。使用するのはappendRow()関数です。最後行の下に行を追加する関数です。

appendRow()関数では、列を指定することはできないので、1列目から値が追加されます。

なお、紹介するのは複数行でもコピーできます。

実際のコード

[コピー元データのあるスプレッドシートのid]、[コピー元データのあるシート名]、[コピー先のシート名]、DataArray()の範囲は必要に応じて変更してください。

※自作のDataArray()関数の引数は、DataArray(開始行、開始列、行数、列数)です。最終行に1列追加するだけなら、行数=1になります。

// コピー元データのあるスプレッドシートの取得
var id= "[コピー元データのあるスプレッドシートのid]"
var File = SpreadsheetApp.openById(id);
var baseSheet = File.getSheetByName("[コピー元データのあるシート名]"); 

// 指定のシートの最終行に値を追加
function MainFrame() {
  setDataList("[コピー先のシート名]",DataArray(◯,◯,◯,◯)); // コピー元シートの範囲を指定する
}

// スプレッドシートの最終行にコピーする関数
function setDataList(sheetName, DATA_Array){
  var Sheet = File.getSheetByName(sheetName);
  Sheet.appendRow(DATA_Array); //最終行に配列データを追加
}

// 指定範囲のセルから値を取得する関数
function DataArray(row,col,rowNum,colNum){
  var array = baseSheet.getRange(row,col,rowNum,colNum).getValues()[0]; // getValuesは2次元配列なので、最初の行のみを指定
  return array; //指定した配列を返す
}

上記のコードを追加して『MainFrame』を起動すれば、指定のシートの最終行にデータが追加されます。

タイトルとURLをコピーしました