【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クラスのメソッドとなり、範囲に値を入力できます。

また、入力できる値は、数値・文字列・真偽値・日付となります。また、=で始まる文字列は数式と判断されます。

範囲・セルの値を取得する場合

範囲・セルの値を取得する方法は、以下のリンク先を参考にしてみてください。

参考サイトなど

コメント投稿コメント投稿欄を開く

コメントは項目欄(*は必須項目)を入力し、「コメントを送信」ボタンをクリックしてください。 (メールアドレスは公開されることはありません。コメントの公開は承認制となります。)

また、多忙によりコメントには返信できない場合があります。

Twitterで返信する場合はこちらから。