【GAS】スプレッドシートに書き込みを行う方法【一括・一行追加】
GASを使用してスプレッドシートに書き込みがしたい・・・。
そんな時に便利なGAS
の関数をご紹介いたします。
スプレッドシートのシートと範囲の指定
スプレッドシートの書き込みについて記述する前に
- スプレッドシート本体のID
- シートのIDや名前
- セルの範囲
などについて指定する必要があります。
追加するスプレッドシート・シートの指定 – SpreadsheetApp
Class SpreadsheetApp | Apps Script | Google Developers
https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet-app
まずはSpreadsheetApp
クラスを使用してシート自体を定義します。
const sheet_id = 'xxxxxxxxxxxxxxxx'
const sheet_name = 'シート1'
const sheet = SpreadsheetApp.openById(sheet_id).getSheetByName(sheet_name);
openById(sheet_id)
getSheetByName(sheet_name)
sheet_id
には、スプレッドシートを開くと表示されるURLの一部をIDとしてコピーします。
https://docs.google.com/spreadsheets/d/xxxxxxxxxxxxxxxxxxxxxxxxxxxxx/edit#gid=0
上記のxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
の部分です。
sheet_name
にはシート名を指定します。初期値でシート1
になっているのでそのまま使用しています。
範囲の指定 – sheet.getRange()
シートの指定が出来たら、次は範囲指定を行います。範囲の指定方法は2種類あり
- A3,B4 などの文字列で指定
- 1,2,4,3 など数値で指定
する方法です。sheet.getRange()
を用います。
// パターン1
const range = sheet.getRange('A1','C6')
// パターン2
const range = sheet.getRange(1,1,3,6)
スプレッドシートへ追加
シートと範囲指定ができたので、次は実際にスプレッドシートに記入してみましょう!
シートへの記入方法も2種類あります。
- 配列を作成し、一括で追加する –
range.setValues()
- 一行ずつ追加する –
sheet.appendRow()
大量のデータをまとめて追加する場合にはsetValues()
、時間経過で徐々に行を追加したい場合にはappendRow()
を使用するイメージですね。
一括追加 – range.setValues()
setValues()
では、指定した範囲にまとめて値を追加する関数です。
下記のような配列を渡します。
const addArray = [
['a', 'b', 'c'],
['d', 'e', 'f']
]
これらの値はシートのセルに対応しており、追加されるようになります。
実際に試してみましょう!シートID
はご自身の環境のものに変更願います。
const sheetAdd = () => {
const sheet_id = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
const sheet_name = 'シート1'
const sheet = SpreadsheetApp.openById(sheet_id).getSheetByName(sheet_name);
const range = sheet.getRange(1,1,2,3)
const addArray = [
['a', 'b', 'c'],
['d', 'e', 'f']
]
range.setValues(addArray)
}
確認してみると・・・
上記のように渡した配列が記入されていますね!
一行追加 – appendRow()
一行追加のappendRow()
は簡単です!
指定したシートに対して配列を渡すだけです!
const sheetAdd = () => {
const sheet_id = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
const sheet_name = 'シート1'
const sheet = SpreadsheetApp.openById(sheet_id).getSheetByName(sheet_name);
const addArray = ['あ', 'い', 'う']
sheet.appendRow(addArray)
}
同様に確認してみましょう!
最終行に追加されています!
まとめ
ご紹介した機能を使用すれば
- 定期的に
WebAPI
からデータを取得してスプレッドシートへ書き込み更新
など便利ですね!
おすすめのUdemy学習動画
ビジネスパーソンに贈る業務効率化大全 〜Google Apps Scriptによる業務の自動化〜
おすすめ学習書籍
コメント
コメント一覧 (1件)
[…] 【GAS】スプレッドシートに書き込みを行う方法【一括・一行追加】 […]