> >

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;
}
スポンサーリンク

Google Spreadsheet シート名を取得 [Google Apps Script]」への6件のフィードバック

  1. //シート名をすべて取得
    if (sheets.length > 1) {
    ここ、
    if (sheets.length >= 1) {
    ではありませんでしょうか・・・。
    (超初心者なのもので、もし的外れな指摘だったらお許しください。)

  2. まさに今やりたいことにドンピシャリの内容でした。ありがとうございます!

  3. MASAYA00さん
    ご指摘の通りですね。ご連絡ありがとうございます。記事を修正いたします。

    TCOさん
    ご活用いただけたようで何よりでございます。

  4. 探していた記事でした!ありがとうございます!

    ちなみにですが、すべてのシート(非表示も含め)の一覧になってしまうのですが、表示しているシートのみを一覧にすることは可能でしょうか?初心者なもので、申し訳ございません。

  5. 田中さん

    ご活用いただけたようで幸いでございます。

    ご質問いただいた件ですが、記事に追記しましたので、ご確認ください。
    「表示されているシート名のみ」および「非表示のシート名のみ」取得するバージョンのソースコードを追記してあります。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です