【実例から学ぶ】GASを使ってスプレッドシートの値を取得・書き込みする方法【初心者向け】

本記事では、GAS(Google App Script)を使ってスプレッドシートの値を取得・書き込みする方法を解説していきます。

実際の例を見ながら進めていくので、是非一緒に進めていきましょう。

まず理解する基本的な流れ

  1. 対象のスプレッドシートからスクリプトエディタを開く
  2. 関数内にスプレッドシートの値を操作するコードを記述
  3. 「実行」で処理を実行する

流れとしては上記が一連の流れです。今回はスクリプトコード記述の部分から解説していきます!

サンプルで使用するスプレッドシート

gasでスプレッドシートの値を取得する基本操作 | 【実例から学ぶ】GASを使ってスプレッドシートの値を取得・書き込みする方法【初心者向け】

今回は上記のデータが入ったスプレッドシートを使って進めていきます。

スプレッドシートの値を取得する

まずは全体像から把握していきましょう。

下記コード実行することで、スプレッドシートのA1の値を取得することができます。

gs
function myFunction() {
  // スプレッドシートを取得
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  // シートを取得
  const sheet = ss.getActiveSheet();
  // セル(A1)を取得
  const range = sheet.getRange('A1');
  // 値を取得
  const value = range.getValue();
  // 値を出力
  console.log(value);
}

実行結果

gasでスプレッドシートの値を取得する基本操作 | 【実例から学ぶ】GASを使ってスプレッドシートの値を取得・書き込みする方法【初心者向け】

今回はA1に「商品名」という値が入っていたので、その値が出力されました。

以下よりコードの詳しい内容について解説していきます。

アクティブなスプレッドシートを取得する

gs
 const ss = SpreadsheetApp.getActiveSpreadsheet();

SpreadsheetApp.getActiveSpreadsheet();で現在アクティブなスプレッドシートを取得できます。

今回はスプレッドシートからGASを開いた想定で上記コードとしています。

その他URLを指定したopenByUrl(url)、スプレッドシートのIDを指定するopenById(id)でも可能です。
参考:https://www.acrovision.jp/service/gas/?p=237

スプレッドシートのシート名を取得する

gs
 const sheet = ss.getActiveSheet();

getActiveSheet()で現在アクティブなシートのデータを取得することができます。

スプレッドシートのセルを取得する

gs
const range = sheet.getRange('A1');

値を取るには値を取りたいセルを指定する必要があるので、getRange(‘セル番号’)でセルを指定して取得します。この例ではA1のセルを取得しています。

セルを範囲で取得する

上の例では1つのセルだけ指定しましたが、下記のようにすれば複数の範囲を指定することも可能です。

gs
  // セル(A1:B4)を取得
  const range = sheet.getRange('A1:B4');

スプレッドシートの値を取得する

gs
const value = range.getValue();

指定したRangeオブジェクトにアクセスして、getValue()で値を取得することができます。

複数の値を取得する

gs
  // セル(A1:B4)を取得
  const range = sheet.getRange('A1:B4');
  // 値を取得
  const value = range.getValues();

// 実行結果
[ [ '商品名', '値段' ],  [ 'りんご', '100円' ],  [ 'バナナ', '150円' ],  [ 'みかん', '80円' ] ]

セルを範囲で取得している場合は、getValues()で複数の値を取得できます。返り値は二次元配列です。

スプレッドシートの値を変更する

次にスプレッドシートの値を変更する方法です。

サンプルコード

gs
function mySetValue() {
  // スプレッドシートを取得
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  // シートを取得
  const sheet = ss.getActiveSheet();
  // セル(A1)を取得
  const range = sheet.getRange('A5:B5');
  // 値をセット
  range.setValues([['いちご','500円']]);
}

実行結果

いちご、500円が追加されました!

セルの範囲取得までは一緒なので割愛。その後のsetValue()が今回の違いです。以下から解説していきます。

セルの値を変更する(1つの場合)

gs
function mySetValue() {
  // スプレッドシートを取得
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  // シートを取得
  const sheet = ss.getActiveSheet();
  // セル(A1)を取得
  const range = sheet.getRange('A5');
  // 値をセット
  range.setValue('いちご');
}

セルの値を1つ変更するにはsetValue(‘変更後の値’)を使用します。

セルの値を複数変更する

gs
  // セル(A5:B5)を取得
  const range = sheet.getRange('A5:B5');
  // 値をセット
  range.setValues( [ [ 'いちご', '500円' ] ] );

値を複数変更するには、getRange()で複数セル範囲を取得し、setValues( [ [ ‘値1’, ‘値2’ ] ] )のように指定します。

二次元配列で入れるのがポイントです。

まとめ

GASでスプレッドシートの値を取得・変更する方法を解説しました。今回紹介したのは基本操作のみで、トリガーで定期実行やプログラムと組み合わせたりすることでもっといろいろなことに応用できます。

今後もGASの関する情報は随時発信していきます。

それではっ!

コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA