セルを操作したい(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行目を見出しとして扱っている場合は、上のようにheadersとrowsに分けて取得すると扱いやすいです。
値を書き込みたい(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次元配列のシェイプ(=行数と列数)と、選択範囲のサイズは揃っている必要があるため、rowsとcolsを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");
選択したセルに対して、フォントやスタイル、文字色などを設定できます。