今回は、Google Apps Script(GAS)でよく使うメソッドと、その使い方を一覧にしてまとめたいと思います。
Google Apps Scriptの基本的な使い方
Google Apps Script(GAS)は、ネットが繋がる環境さえあればインストールなどの環境構築は不要です。開き方、操作方法、実行・デバッグ方法については以下記事にて解説しています。
Googleスプレッドシートについて
Googleスプレッドシートは、Googleの表計算ツールです。こちらもネット環境があればいつでもどこでもアクセスできます。(初心者向け解説記事はこちら)
スプレッドシートにGASを紐づけることも可能ですし、紐づけないで単体のGASスクリプトにすることもできます。それぞれ「コンテナバインドスクリプト」「スタンドアロンスクリプト」といいます。(詳しくはこちらの記事参照)
Googleスプレッドシートの開き方
Googleスプレッドシートはこちらのリンクから開くことができます。(別タブで開きます)
GAS初回実行時は権限の確認が必要
GASでスプレッドシートの操作をする場合、初回実行時に権限の承認が必要です。
「権限を承認」を押下→実行するアカウント名を押下→左下に小さく出てる「詳細」を押す→「XXX(安全でないページ)に移動」を押す→「許可」を押す で実行できるようになります。(めんどくさい)
「安全でない」と出てますが、GASで何かしらの連携を行う場合、それがGoogleのサービスであっても出てくるメッセージなので気にしなくて大丈夫です。
指定したスプレッドシートを開く/ openBy
スプレッドシートを開くには、以下の2通りの方法があります。
URLの取得方法
対象のスプレッドシートを開くと、上部のアドレスバーに以下のようにURLが表示されています。
https://docs.google.com/spreadsheets/d/XXXXX/edit#gid=0
こちらをそのままコピーして、openByUrlメソッドの引数として渡します。
let spreadsheet = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/XXXXX/edit#gid=0');
以下のように書くこともできます。URLを定数として先頭に記述すると、あとから修正するときに分かりやすいです。私はこの方法で記述しています!
const URL = https://docs.google.com/spreadsheets/d/XXXXX/edit#gid=0'
let spreadsheet = SpreadsheetApp.openByUrl(URL);
IDの取得方法
IDは、URLのXXXXXの部分になります。※gidではありません!
https://docs.google.com/spreadsheets/d/XXXXX/edit#gid=0
let spreadsheet = SpreadsheetApp.openById('XXXXX');
シートの取得/ getSheet
シートを開く方法は、以下の方法があります。
// ◆ シート名で開く(getSheetByName)
let spreadsheet = SpreadsheetApp.openById('XXXXX');
let sheet = spreadsheet.getSheetByName('シート1'); # シート1を取得
// ◆ シート番号で開く (getSheet)
let spreadsheet = SpreadsheetApp.openById('XXXXX');
let sheet = spreadsheet.getSheets()[1]; # シート2を取得
セルの範囲を取得/getRange
セルの範囲を取得するにはgetRangeメソッドを使います。
// ◆ 1つのセルの値を取得
let spreadsheet = SpreadsheetApp.openById('XXXXX');
let sheet = spreadsheet.getSheetByName('シート1'); // シート1を取得
let value = sheet.getRange(8, 4);
// ◆ 複数行を取得
let value = sheet.getRange(1, 2, 3);
// ◆ 複数行を取得
let value = sheet.getRange(1, 2, 3, 3);
値はgetValueで取り出す
getRangeメソッドで取り出した値は、Rangeオブジェクトとなっています。セルの値を取り出す場合はgetValue/getValuesメソッドを使います。
let value = sheet.getRange(8, 4);
console.log(value.getValue());
getRangeに関する詳しい説明は以下記事をご参照ください。
セルに値を書き込み/ setValue
セルに値を書き込む場合は、getRange + setValue/setValuesを使います。
// ◆ 1つのセルに書き込み
let spreadsheet = SpreadsheetApp.openById('XXXXX');
let sheet = spreadsheet.getSheetByName('シート1'); # シート1を取得
sheet.getRange(8, 4).setValue('セルにこの値が書き込まれます');
// ◆ 複数範囲に書き込み
let spreadsheet = SpreadsheetApp.openById('XXXXX');
let sheet = spreadsheet.getSheetByName('シート1'); # シート1を取得
let values = [
[1, "ここはC3です", "aaa"],
[2, "ここはC4です", "bbb"],
[3, "ここはC5です", "ccc"]
];
sheet.getRange(3, 2, 3, 3).setValues(values);
setValuesに関する詳しい説明は、以下記事をご参照ください。
最終行を取得/ getLastLow
値が入っている最終行を取得するには、getLastRowメソッドを使います。
let spreadsheet = SpreadsheetApp.openById('XXXXX');
let sheet = spreadsheet.getSheetByName('シート1'); # シート1を取得
let lastRow = sheet.getLastRow();
最終列を取得/ getLastColumn
値が入っている最終行を取得するには、getLastColumnメソッドを使います。
let lastRow = sheet.getLastColumn();
最終行・列の取得方法について、以下記事をご参照ください。
(おまけ) ログ出力
スプレッドシートから取得した内容を出力したい場合は、ログ出力用のメソッドを使います。
console.log('この部分がGASのコンソールに出力されます');
スプレッドシートを操作するスクリプトの作成では、何度もログを出力しながら作り上げる形になるかと思いますので、上記メソッドは覚えておくと便利です。
参考:公式ドキュメントのメソッド一覧
Spreadsheetクラスのメソッド一覧が載っています。直訳で分かりにくい部分もありますが、サンプルコードもあるので参考になると思います。
まとめ
今回は、Google Apps Script(GAS)×スプレッドシートの操作でよく使うメソッドについて紹介しました。
数多くのメソッドがあるなか、紹介したものはほんの一握りですが、スプレッドシートの操作をするうえで私がふだん使っているメソッドは殆ど本記事に書いたメソッドになります。基本的な操作をマスターできれば、あとは都度ドキュメントで調べる程度でなんとかなると思います。
GASでスプレッドシートの操作をしたいという方は、今回紹介したメソッドをおさえておくことをおすすめします。
コメント