【GAS・スプレッドシート】範囲・セルに値を入力する方法|選択中や指定した範囲
今回は、Google スプレッドシートでGoogle Apps Script (GAS)を利用して、セル内・範囲内に値を入力する、いくつかの簡単な例となります。
範囲に値を入力する例|setValues()
範囲に値を入力するには、RangeクラスのgetValuesメソッドの引数に、2次元配列で値を指定します。2次元配列は、外側の配列が行となり、その要素の配列が列の値となります。
また、指定する2次元配列の数と範囲が一致しない場合はエラーとなります。
以下、範囲に値を入力するそれぞれの例となり、スクリプトエディタに記述します。
指定した範囲に値を入力
以下のそれぞれの例では、行・列の2次元配列の値を、指定した範囲(B3:E6)に入力しています。
行番号・列番号・行数・列数で範囲を指定
function myFunction() {
const sheet = SpreadsheetApp.getActiveSheet();
const values = [
[ "2020/01/01", "テスト01", "1,000", "=A3+D3" ],
[ "2020/01/02", "テスト02", "2,000", "=A4+D4" ],
[ "2020/01/03", "テスト03", "3,000", "=A5+D5" ],
[ "2020/01/04", "テスト04", "4,000", "=A6+D6" ]
];
const range = sheet.getRange(3,2,4,4);
range.setValues(values);
}
例の関数内では、現在のシートに対して、SheetクラスのgetRangeメソッドで範囲を指定しています。
getRangeメソッドの引数の指定方法はいくつかありますが、上記では引数に行番号・列番号・行数・列数を指定して範囲を取得しています。
第1引数には先頭のセルの行番号、第2引数には先頭のセルの列番号を指定します。(列番号は、Aの列番号は 1、Bの列番号は2 のように、列のアルファベット順を数値順に置き換えた値)
第3引数には取得する行数、第4引数には取得する列数を指定します。(行数・列数は、指定した先頭のセルから数えた値を指定)
また、GASで行数・列数を取得する方法については、以下のリンク先を参考にしてみてください。
セル番地で範囲を指定
function myFunction() {
const sheet = SpreadsheetApp.getActiveSheet();
const values = [
[ "2020/01/01", "テスト01", "1,000", "=A3+D3" ],
[ "2020/01/02", "テスト02", "2,000", "=A4+D4" ],
[ "2020/01/03", "テスト03", "3,000", "=A5+D5" ],
[ "2020/01/04", "テスト04", "4,000", "=A6+D6" ]
];
const range = sheet.getRange("B3:E6");
range.setValues(values);
}
例の関数内では、現在のシートに対して、SheetクラスのgetRangeメソッドで範囲を指定しています。
getRangeメソッドの引数の指定方法はいくつかありますが、上記では引数に範囲のセル番地を指定して範囲を取得しています。また、引数には"シート02!B3:E6"のようにシート名の指定も可能です。
また、例の引数はA1型の表記でしたがR1C1型でも指定可能。(R1C1型では「R」はRow(行)、「C」はColumn(カラム)を意味し、それらR・Cの数値順でセル番地を表します。)
セルに値を入力する例|setValue()
セルに値を入力するには、RangeクラスのgetValueメソッドの引数に値を指定します。
以下、セルに値を入力するそれぞれの例となり、スクリプトエディタに記述します。
指定したセルに値を入力
以下のそれぞれの例では、指定したセル(D2)に値を入力しています。
行番号・列番号でセルを指定
function myFunction() {
const sheet = SpreadsheetApp.getActiveSheet();
const cell = sheet.getRange(2,4);
cell.setValue(100);
}
例の関数内では、現在のシートに対して、SheetクラスのgetRangeメソッドで指定したセルに値を入力しています。
getRangeメソッドの引数の指定方法はいくつかありますが、上記では引数に行番号・列番号を指定してセルの範囲を取得しています。
第1引数には行番号、第2引数には列番号を指定します。(列番号は、Aの列番号は 1、Bの列番号は2 のように、列のアルファベット順を数値順に置き換えた値)
セル番地でセルを指定
function myFunction() {
const sheet = SpreadsheetApp.getActiveSheet();
const cell = sheet.getRange("D2");
cell.setValue(100);
}
例の関数内では、現在のシートに対して、SheetクラスのgetRangeメソッドで指定したセルに値を入力しています。
getRangeメソッドの引数の指定方法はいくつかありますが、上記では引数にセル番地を指定してセルの範囲を取得しています。また、引数には"シート02!D2"のようにシート名の指定も可能です。
また、例の引数はA1型の表記でしたがR1C1型でも指定可能。(R1C1型では「R」はRow(行)、「C」はColumn(カラム)を意味し、それらR・Cの数値順でセル番地を表します。)
選択中のセルに値を入力
以下の例では、選択中のセルに値を入力しています。
function myFunction() {
const sheet = SpreadsheetApp.getActiveSheet();
const cell = sheet.getCurrentCell();
cell.setValue(100);
}
例の関数内では、現在のシートに対して、SheetクラスのgetCurrentCellメソッドで選択中のセルを指定して、セルに値を入力しています。
setValues()・setValue()について
上記例で利用しているsetValuesメソッド・setValueメソッドは、範囲に対して利用できるRangeクラスのメソッドとなり、範囲に値を入力できます。
また、入力できる値は、数値・文字列・真偽値・日付となります。また、=で始まる文字列は数式と判断されます。
範囲・セルの値を取得する場合
範囲・セルの値を取得する方法は、以下のリンク先を参考にしてみてください。