【Google Apps Script】SpreadSheet(スプレッドシート)でシート名を取得する関数とは?ついでに全部のシート名を取得する関数も作ってみた
勤務先では、グループウェアとしてG Suite(旧Google Apps)を使用しています。
ですので、ちょっとした表も案件管理票もエクセルでなく、スプレッドシート(Google SpreadSheet)を使って書いてます。
先日、資料を作っていて「シート名を取得したい!」と思ったので調べました。
実はGoogle SpreadSheetにシート名を取得する関数は?
- 行だったら、ROW()
- 今日の日付だったら、TODAY()
という感じでシート名を取得する関数があるのかと思ってたんですが、なぜか無いようです!
ということでシート名を取得する関数を作ってみた
こんな感じになります。
[js] function sheetname() { return SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getName(); } [/js]
参考:Googleスプレットシートでシート名を取得する方法を知りたいです。エクセルな... - Yahoo!知恵袋
ちなみに全部のシート名を取得する関数は
当然、ありませんので作ってみました。
1. シート名を取得し、配列に格納する。
2. シートの数だけ繰り返す。
という処理のフローです。
[js] function GetAllSheet() { var objSheets; var sheetNames = []; objSheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();// var intMaxIndex = objSheets.length; for (intIndex = 0; intIndex < intMaxIndex; intIndex++) { sheetNames[intIndex] = objSheets[intIndex].getName(); } return sheetNames; } [/js]
解説
ちなみにGoogle SpreadSheetで戻り値が配列の場合、縦方向に連続して値が出力されます。
この性質を利用すれば、セルに値を入れるSetValueみたいな処理をしなくてもいいので、簡単に書くことが出来ます!