【Google Apps Script】複数のセルの値を取得し、複数のセルに値を入力する。
for文を使い、行列にする必要はない。
はろー、yukiです。
Excelマクロだと、VBAでfor文を使用し、複数のセルを扱っていたと思います。
Google Apps Scriptでは、すでに用意されているメソッドを使用します。
getValues
とsetValues
です。
Values
をValue
にすると、単体の取り扱いになります。
コードは下記になります。
//////////////////////////////////////////////////////// /// /// /// スプレッドシートにある複数のセルの値を取得 /// /// 配列の要素をスプレッドシートの複数セルに入力 /// /// /// //////////////////////////////////////////////////////// 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行未満で実現できる。
補足までに、変数を使用してセルの開始位置と、移動回数を設定しています。
汎用性のあるコーディングになっています。
以上。