備忘録です。
GoogleAppsScript 完全入門で学んだことを備忘録としてまとめていきます。
- 自分が知っていることや、解説、今は必要ないなと思ったことは省いています。
- 解説などは自分が分かりやすい言葉で書いているので厳密に違うこともあるかもしれません。
スプレッドシートに関する主なクラス
クラス | 説明 |
---|---|
SpreadsheetApp | Spreadsheetのグローバルオブジェクト |
Spreadsheet | Spreadsheetを操作する機能を提供 |
Sheet | シートを操作する機能を提供 |
Range | セル範囲を操作する機能を提供 |
![無題のスプレッドシート_-_Google_スプレッドシート.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F646383%2F86bb48cf-c2d7-915a-d6fe-0933209ef514.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=3690d8f94eac44af254425c219e3920b)
スプレッドシートの取得
同スプレッドシート内に複数のシートがある場合
一度Google Appにアクセスしてシートを取得する。
例
// アクティブなスプレッドシートを取得
function myFunction() {
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
Logger.log(spreadsheet.getName());
}
// URLでスプレッドシートを取得
var url = 'https://xxxxxxxxxxxxxxxxxxxxxxxxxxxxx/edit#gid=0'
spreadsheet = SpreadsheetApp.openByUrl(url);
Logger.log(spreadsheet.getName());
// 他にidで取得する方法もある
![スクリーンショット 2020-08-06 8.50.24.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F646383%2F680caa1e-4145-a5ab-3215-f40f46b5ff11.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=78cd1be0625527b9e7a3fdc043b1681e)
スプレッドシートのシートが1つの場合
getActiveSheetメソッドを使用しシートを取得する。
Google Appへのアクセスは実行時間が遅くなる傾向なので、できるだけこちらの方法でシートの取得を行う。
例
function myFunction() {
var sheet = SpreadsheetApp.getActiveSheet();
Logger.log(sheet.getName());
}
![スクリーンショット 2020-08-06 9.11.12.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F646383%2F70a2f239-31a8-3ae0-c9ec-ffa8d6b64fc2.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=87bf60a4b470a5017b22ccb9070d7007)
セルの範囲を取得する
Sheetクラスのメンバーを使用する。
構文
// A1とかA1:A5(アドレス)で指定
Sheetオブジェクト.getRange(アドレス)
// 行番号、列番号、行数、列数で細かく指定
Sheetオブジェクト.getRange(行番号, 列番号, 行数, 列数)
// データが存在するところを自動で取得
Sheetオブジェクト.getDataRange()
セルの範囲を操作する
Rangeクラスのメンバーを使用する。
下記のようなことができる。メンバーはめちゃくちゃたくさんあるので使う時に調べる。
- セルの値を取得
- セルに値や数値を追加する
- 書式の設定
- 並び替え
その他メモ
シート上のデータは配列でまとめて取得、入力するとスプレッドシートへのアクセス回数(実行時間)の削減が可能になる。