セルを操作したい(Range

1const range = sheet.getDataRange();
2const range = sheet.getRange("A1:C3");

Rangeオブジェクトは、シート上の選択した範囲を操作できます。

データを選択したい(getRange

1// A1表記で指定
2// sheet.getRange("セル番地");
3// sheet.getRange("セル番地:セル番地");
4
5// A1セルを選択
6const range = sheet.getRange("A1");
7
8// A1セルからB3までの範囲を選択
9const range = sheet.getRange("A1:B3");

getRangeでセル(やセル範囲)を指定して選択できます。 セル番地は大文字でも小文字でもOKです。

 1// 行番号/列番号で指定
 2// sheet.getRange("行番号", "列番号");
 3// sheet.getRange("行番号", "列番号", "行数");
 4// sheet.getRange("行番号", "列番号", "行数", "列数");
 5
 6// 2行目3列目(=C2セル)を選択
 7const range = sheet.getRange(2, 3);
 8
 9// 2行目3列目(=C2)から2行目2列目(=D3)の範囲を取得
10const range = sheet.getRange(2, 3, 2, 2);

getRangeはR1C1表記にも対応しています。

列(や行)を選択したい

1// B列を全選択
2const range = sheet.getRange("B1:B");
3
4// 2行目を全選択
5const range = sheet.getRange("A2:2");
6
7// これはエラー
8const range = sheet.getRange("B");
9// -> Exception: Range not found

列全体はgetRange(開始セル:列番号)、 行全体はgetRange(開始セル:行番号)で選択できます。 getRange(列番号 or 行番号)だけだとエラーになります。

データを全選択したい(getDataRange

1// すべてのデータの範囲
2const range = sheet.getDataRange();

getDataRangeで、シートにあるデータを全選択できます。 余計な空行・空列は含まれないので、シート全体でデータを管理している場合によく使います。

1// 見出しを除外したデータの範囲
2const nrows = sheet.getLastRow() - 1;
3const ncols = sheet.getLastColumn();
4const range = sheet.getRange(2, 1, nrows, ncols);

シートの1行目は、見出しに設定している場合があります。 見出しを含みたくない場合は、2行目から選択するとよいです。

1const lastRow = sheet.getLastRow();
2const newRange = sheet.getRange(lastRow + 1, 1);

データを読み込むときより、既存のデータを追記したいときに利用します。

選択範囲を確認したい(activate

1// 選択範囲を確認
2range.activate();

activateメソッドで、実際に選択された範囲をシート上で確認できます。 デバッグ時など、選択範囲が正しいか確認するときに便利です。

値を読み込みたい(getValues

1const values = range.getValues();

getValuesメソッドで、選択した範囲の値を2次元配列として取得できます。

1const values = sheet.getDataRange().getValues();
2const headers = values[0];
3const rows = values.slice(1);

1行目を見出しとして扱っている場合は、上のようにheadersrowsに分けて取得すると扱いやすいです。

値を書き込みたい(setValues

1const arrays = [
2  ["名前", "年齢"],
3  ["田中", 20],
4  ["鈴木", 30],
5];
6const rows = arrays.length;      // 行の数
7const cols = arrays[0].length;   // 列の数
8sheet.getRange(1, 1, rows, cols).setValues(arrays);

setValuesメソッドで、選択した範囲に2次元配列の値を書き込めます。 書き込みたい2次元配列のシェイプ(=行数と列数)と、選択範囲のサイズは揃っている必要があるため、rowscolsを2次元配列から取得しています。

組み込み関数を使いたい(setFormula

1const cell = sheet.getRange("D1");
2cell.setFormula("=SUM(A1:C1)");

setFormulaでスプレッドシートの組み込み関数を利用できます。

セルの書式を変更したい

1const range = sheet.getRange(1, 1, 3, 2); // 開始行, 開始列, 行数, 列数
2range.setFontSize(12);
3range.setFontFamily("Arial");
4range.setFontWeight("bold");   // "normal", "bold"
5range.setFontStyle("italic");  // "normal", "italic"
6range.setFontLine("underline"); // "none", "underline", "line-through"
7range.setFontColor("red");
8range.setBackground("yellow");

選択したセルに対して、フォントやスタイル、文字色などを設定できます。

リファレンス