読者です 読者をやめる 読者になる 読者になる

よーやまブログ(PHPと自動化と語学と資格)

PHPと自動化と語学にハマったWebプログラマー。主にWebネタ、MySQL、Linux、Apache、語学をやるよ

【Google Spread Sheet】 シート名を取得する関数とは?ついでに全部のシート名を取得する関数も作ってみた

Google Spread Sheet JavaScript、Google Apps Script

どうも、よーやまです。

勤務先では、グループウェアとしてG Suite(旧Google Apps)を使用しています。

ですので、ちょっとした表も案件管理票もエクセルでなく、スプレッドシートGoogle SpreadSheet)を使って書いてます。

先日、資料を作っていて「シート名を取得したい!」と思ったので調べました。

実はGoogle SpreadSheetにシート名を取得する関数は無い!

行だったら、ROW() 今日の日付だったら、TODAY() という感じでシート名を取得する関数があるのかと思ってたんですが、なぜか無いようです!

ということでシート名を取得する関数を作ってみた

こんな感じになります。

 function sheetname() {
  return  SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getName();
}

参考:Googleスプレットシートでシート名を取得する方法を知りたいです。エクセルな… - Yahoo!知恵袋

ちなみに全部のシート名を取得する関数は

当然、ありませんので作ってみました。

  1. シート名を取得し、配列に格納する。
  2. シートの数だけ繰り返す。

という処理のフローです。

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;
}

解説

ちなみにGoogle SpreadSheetで戻り値が配列の場合、縦方向に連続して値が出力されます。

この性質を利用すれば、セルに値を入れるSetValueみたいな処理をしなくてもいいので、簡単に書くことが出来ます!