Google Apps Script Google Spreadsheeet

Google Spreadsheet シート名を取得 [Google Apps Script]

スポンサーリンク

以前の記事でも書きましたが、Googleのサービスが好きで、特にGoogle Spreadsheetの活用が大分好きです。
今回は、Google Spreadsheetで実装する自分だけの関数、独自関数の作成です。
話は簡単です。
要するに、Google Spreadsheetからスクリプトエディタを開き、その中で関数を定義するだけ。
当然引数を持たせることが可能です。
具体的なソースコードは以下の通りです。
※関数名は好きなようにつけてください。
githubはコチラ

//引数に指定したシートのgidを取得
function wmap_getSheetId(sheet_name) {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheet_name);
  var tmp = sheet.getSheetId();
  return tmp;
}
//シート名をすべて取得
function wmap_getSheetsName(){
  var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();
  var sheet_names = new Array();
  if (sheets.length >= 1) {
    for(var i = 0;i < sheets.length; i++)
    {
      sheet_names.push(sheets[i].getName());
    }
  }
  return sheet_names;
}
//関数を設置したシートのシート名を取得
function wmap_getSheetName(){
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var sheet_name = '';
  sheet_name = sheet.getName();
  return sheet_name;
}
//スプレッドシートのURLを取得
function wmap_getSpreadsheetURL(){
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var ss_url = ss.getUrl();
  return ss_url;
}

具体的な活用例は↓を参照してみてください。
https://docs.google.com/spreadsheets/d/1v9Oco1B70uAslStvIqXgkU5W-JEK-CfgGCvOmyLiFSE/edit#gid=0
※セキュリティの都合上、編集はできません。閲覧権限のみの設定としています。
何気にシート名を取得したりする事は多かったりするので、この手の関数を用意しておくと便利です。
ついでに、wmap_getSheetsName()はfor文の中身を↓のようにして、[sheet_name_part]を書き換えれば、その文字列の含まれたシートだけを取得できます。結構便利です。

if(sheets[i].getName().match(/sheet_name_part/))
      {
        sheet_names.push(sheets[i].getName());
      }

---------------2017年10月3日(火)追記---------------
表示されているシートのみのシート名取得および非表示のシート名のみのシート名取得

//表示されているシート名をすべて取得
function wmap_getSheetsName_NonHidden(){
  var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();
  var sheet_names = new Array();
  if (sheets.length >= 1) {
    for(var i = 0;i < sheets.length; i++) {
     if(!sheets[i].isSheetHidden()) {
      sheet_names.push(sheets[i].getName()); 
    } 
  }
} 
return sheet_names;
} 
//非表示のシート名をすべて取得 
function wmap_getSheetsName_Hidden(){
 var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();
 var sheet_names = new Array(); if (sheets.length >= 1) {
    for(var i = 0;i < sheets.length; i++)
    {
      if(sheets[i].isSheetHidden())
      {
        sheet_names.push(sheets[i].getName());
      }
    }
  }
  return sheet_names;
}
タイトルとURLをコピーしました