今回はGASの入門編第3弾ということで、読み込むスプレッドシートを取得・指定する方法をご紹介します。
GASでスプレッドシートを指定する方法
まずはスプレッドシートを指定する方法です。
スプレッドシートの「ツール」>「スクリプトエディタ」で開いた場合は、アクティブなスプレッドシート=元のスプレッドシートになるので、基本的に1つ目を使えばOkですが、方法としては3つあります。
var 変数 = SpreadsheetApp.getActive();
②URLを元にスプレッドシートを取得する方法
var 変数 = SpreadsheetApp.openByUrl(“URL”);
③スプレッドシートのIDを元に取得する方法
var 変数 = SpreadsheetApp.openById(“ID”);
function getSheetName() {
// スプレッドシートを取得
var sheet1 = SpreadsheetApp.getActive();
var sheet2 = SpreadsheetApp.openByUrl("URL");
var sheet3 = SpreadsheetApp.openById("ID");
Logger.log(sheet1.getName());
Logger.log(sheet2.getName());
Logger.log(sheet3.getName());
}
実際にこのコードを入れて3つそれぞれを見比べてみましょう。
コードを貼り付けてURLとIDはそれぞれスプレッドシートのものを記入
「表示」>「ログ」からログを確認
データを確認
それぞれの取得の仕方で同じデータ(スプレッドシート名)を取得できていることがわかります。
GASでスプレッドシート内のシートを指定する方法
続いてスプレッドシート内のシートを指定する方法について説明します。使うコードはこちら。
var 変数 = sheet1.getSheetByName(“test”);
function getSheetName() {
// スプレッドシートを取得
var sheet1 = SpreadsheetApp.getActive();
var sheetName = sheet1.getSheetByName("test");
Logger.log(sheetName.getName());
}
要は取得したスプレッドシート(sheet1)から「test」と言う名前のシートを取得しますよ、それをsheetNameと言う変数に入れ込みますよということですね。
GASでシート内のセルを指定する方法
最後に、ここまでで取得してきたシートの中で、セルを指定する方法をご紹介します。使うコードはこちら。
function getSheetName() {
// スプレッドシートを取得
var sheet1 = SpreadsheetApp.getActive();
var sheetName = sheet1.getSheetByName("test");
//セル名を指定する方法
var getCell1 = sheetName.getRange("A1");
//セルの範囲で取得する方法(A1 〜 C3まで)
var getCell2 = sheetName.getRange("A1:C3");
//行列で指定する方法(A1を指定する)
var getCell3 = sheetName.getRange(1,1);
//セルと取得する行数を指定する方法(A1から3行分取得)
var getCell4 = sheetName.getRange(1, 1, 3);
//セルと取得する行数・列数を指定する方法(A1から3列分、3行分取得)
var getCell5 = sheetName.getRange(1, 1, 3, 3);
Logger.log(getCell1.getValues());
Logger.log(getCell2.getValues());
Logger.log(getCell3.getValues());
Logger.log(getCell4.getValues());
Logger.log(getCell5.getValues());
}
スプレッドシートのデータ位置を確認
まずはどのセルを取得するかを確認します。今回はA1~C3までを使っていきます。
コードを貼り付ける
上記のコードを貼り付けます。なお今回は上から順に以下を取得しています。
- A1セル
- A1~C3
- A1セル
- A1~A3
- A1~C3
デバッグ結果を見てみる
ログをみると、以下のように取得できているのがわかります。
ちなみに[]で囲われているものは配列と言い、行ごとにデータをまとめて取得して1つの箱の中に入れているような状態と思ってもらえればOkです。
まとめ
いかがでしたか。
Google Apps Script(GAS)でセルを操作するには、
1. スプレッドシートのオブジェクトを取得
2. シートのオブジェクトを取得
3. セル範囲を指定したオブジェクトを取得
4. オブジェクトの内容を取得・変更
という4段階を踏む必要があります。
ただ、一度構文を作ってしまえばあとは毎回流用するだけなので、上記フローとソースコードはしっかり理解して使えるようにしておきましょう。