便利なGASレシピ集!に戻る場合は以下から
はじめに
どうも、ビジボットです。
今回の記事は「getSheetByName()」でスプレッドシートのシート名を取得する方法を紹介しています。 サンプル用のスプレッドシートを用意して「getSheetByName()」で名前を指定するパターンと、アクティブシートを指定するそのままのタイプをメリットデメリットでも比較してます。
それではさっそく始めていきます!
シート名を指定する
スプレッドシートのシート名を指定して操作をしたい場合、記述するテンプレートを紹介します。

この中で、「ビジボットA」というシート名の中にある「ビジボットAの値を取得」という文字をシート名を指定して取得します。
GASのエディタを開く方法などは以下ページを参照してください。
シート名を指定するレシピ
1 2 3 4 5 6 7 8 9 10 11 |
function myFunction() { // シート名を取得 var spreadsheet = SpreadsheetApp. getActiveSpreadsheet().getSheetByName('ビジボットA'); // 該当シート名のセル(1,1)に含まれている値を取得 var msg = spreadsheet.getRange(1,1).getValue(); //msgのログを確認する Logger.log('msg:' + msg); } |
Logger.logの結果
1 |
[19-05-23 00:58:38:560 JST] msg:ビジボットAの値を取得 |
「getSheetByName(‘ビジボットA’)」を使ってシート名を指定して、該当シートに記載されている値を取得できました。
getSheetByName()を使う
1 2 |
var spreadsheet = SpreadsheetApp. getActiveSpreadsheet().getSheetByName('ビジボットA'); |
スプレッドシートのシート名を指定しないでアクティブなシートを処理する場合、SpreadsheetApp.getActiveSpreadsheet()までは同じです。末尾に「.getSheetByName(‘取得したいシート名’);」が追加できればOKです。
1 2 |
var spreadsheet = SpreadsheetApp. getActiveSpreadsheet().getSheetByName('取得したいシート名'); |
アクティブなシートを処理する記述は以下から
シート名が2つある場合もそれぞれのシート名を取得し、それらシートの中にある情報を取得します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
function myFunction() { // シート名をそれぞれ指定 var bzbotA = SpreadsheetApp. getActiveSpreadsheet().getSheetByName('ビジボットA'); var bzbotB = SpreadsheetApp. getActiveSpreadsheet().getSheetByName('ビジボットB'); // それぞれのシート名にあるセル(1,1)の値を取得する var msgA = bzbotA.getRange(1,1).getValue(); var msgB = bzbotB.getRange(1,1).getValue(); // ログでmsgAとmsgBで取得している値を確認 Logger.log('msgA:' + msgA); Logger.log('msgB:' + msgB); } |
Logger.logの結果
1 2 |
[19-05-23 01:14:51:070 JST] msgA:ビジボットAの値を取得 [19-05-23 01:14:51:071 JST] msgB:ビジボットBの値を取得 |
それぞれのシートの値が取得できました。
それぞれのメリットデメリット
指定方法 | メリット | デメリット |
アクティブシート | シート名を変更しても影響されない | 複雑な処理に限界 |
シート名 | 複雑な処理でも可能 | シート名を変更すると影響する |
シート名の変更が基本ないものとして、複雑な処理を実行する場合にはシート名で宣言したほうが可読性も高く、ミスも起きにくいです。
用途に応じて記述するコードを分けてもいいですし、最初からシート名を指定する記述方法もありです。
便利なGASレシピ集!に戻る場合は以下から