1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

GAS:シートの存在確認はgetSheetByName()で済む

Last updated at Posted at 2022-04-16

GASは公式ドキュメントが一番

後輩のコードレビューをしていた時、今月のシートというものが設定されているスプシファイルに対して、全シートをforループで走査していたのを発見。
試しに「GAS シート 存在確認」でググったところ、上位4件中3件が、
「一発で存在確認できるクラスはない」
「自作関数を用いて簡素化せよ」
という内容のブログだったので、あえて否定記事を書かせていただきます。
image.png

存在するシートの名前の全てを走査しなくとも、getSheetByName()で存在しないシートを参照した場合、nullが返ってくるので、ifステートメントでnullじゃないことを確認すれば済む。

「GAS check sheet existance」と検索すると一番に出てくるのがこちらの記事↓
https://stackoverflow.com/questions/48974770/check-for-existence-of-a-sheet-in-google-spreadsheets

var ss = SpreadsheetApp.getActiveSpreadsheet(); 
var sheet = ss.getSheetByName('SHEET_NAME');

 if (!sheet) {

   //DO;
}

※nullはfalseになる。

公式ドキュメントにもしっかり
Returns null if there is no sheet with the given name.
と書いてある。
https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet#getsheetbynamename
image.png

ちなみにここにも注意。
If multiple sheets have the same name, the leftmost one is returned.
(同じ名前で複数のシートがあった場合、一番左側(最初に見つかった分)のシートが返ってくる)

  1. 英語でググりましょう。量と正確さが違う。
  2. GASは公式ドキュメント参照するのが一番
1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?