雪ん子パースペクティヴ

読むとちょっとタメになるエントリー。コメントあると嬉しいです。

【Google Apps Script】複数のセルの値を取得し、複数のセルに値を入力する。

for文を使い、行列にする必要はない。

 

はろー、yukiです。

 

Excelマクロだと、VBAでfor文を使用し、複数のセルを扱っていたと思います。

Google Apps Scriptでは、すでに用意されているメソッドを使用します。

getValuessetValuesです。

ValuesValueにすると、単体の取り扱いになります。

 

コードは下記になります。

////////////////////////////////////////////////////////
///                                                  ///
///   スプレッドシートにある複数のセルの値を取得     ///
///   配列の要素をスプレッドシートの複数セルに入力   ///
///                                                  ///
////////////////////////////////////////////////////////

var rowStartPnt = 1; // 1:10
var colStartPnt = 1; // A:E -> 1:5
var rowNum = 9;
var colNum = 4;

var sampleAry = ["ここにテキスト1", "ここにテキスト2"]; // 配列はサンプル

function getValues() {
  // 在籍人数の値を取得
  var getCellValues = targetSheet.getRange(rowStartPnt, colStartPnt, rowNum, colNum).getValues();
  //  Logger.log(getZaisekiAry);  

  // getRangeメソッド
  // 戻り値はRange
  // https://developers.google.com/apps-script/reference/spreadsheet/sheet#getRange(Integer,Integer,Integer,Integer)
  
  // getValuesメソッド
  // 戻り値は二次元配列
  // https://developers.google.com/apps-script/reference/spreadsheet/range#getvalues
  
}


function setValues() {
  // 在籍人数の値を格納
  var setCellValues = targetSheet.getRange(rowStartPnt, colStartPnt, rowNum, colNum).setValues(sampleAry);

  // setValuesメソッド
  // 戻り値はRange
  // https://developers.google.com/apps-script/reference/spreadsheet/range#setvaluesvalues

}

 

 

何が良いって、コードが短くなることですよね。

for文を重ねると5-10行くらいになりそうなのが、5行未満で実現できる。

 

補足までに、変数を使用してセルの開始位置と、移動回数を設定しています。

汎用性のあるコーディングになっています。

 

 

以上。

 

 

Googleアドセンス