web-dev-qa-db-ja.com

特定のシート名を除くすべてのシートをループします

私は次のコードを見つけ、それを使用して、いくつかのシート(ループさせたくない)をすべてのシートでループさせたいと思います。

私の質問は、このコードをシートの例「設定」「ヘルプ」「FAQ」にループしないように編集する方法です。

function myFunction() {
var ss = SpreadsheetApp.getActive();
var allsheets = ss.getSheets();
for (var s in allsheets){
var sheet=allsheets[s]

//your  code here ...

}//end of  sheets loop.
}// end of function...
1
Phwac

forループを使用している場合、continueを使用して現在の反復の実行を終了できます。

Ifステートメントと||を使用して上記を実装する方法(論理OR)

function myFunction() {
  var ss = SpreadsheetApp.getActive();
  var allsheets = ss.getSheets();
  for(var s in allsheets){
    var sheet = allsheets[s];

    // Stop iteration execution if the condition is meet.
    if(
       (sheet.getName() == "Setting") || 
       (sheet.getName() == "Help") || 
       (sheet.getName() == "FAQ") 
      ) continue;

    //your code here

  } // end of loop

} // end of function

同じことを行うよりエレガントな方法は次のとおりです。

function myFunction() {
  var ss = SpreadsheetApp.getActive();
  var allsheets = ss.getSheets();

  // Array holding the names of the sheets to exclude from the execution
  var exclude = ["Setting","Help","FAQ"];

  for(var s in allsheets){
    var sheet = allsheets[s];

    // Stop iteration execution if the condition is meet.
    if(exclude.indexOf(sheet.getName())==-1) continue;

    //your code here

  } // end of loop

} // end of function
4
Rubén