web-dev-qa-db-ja.com

Googleスプレッドシートにシートの名前をリストし、最初の2つをスキップします

Googleスプレッドシートのすべてのシートの名前を一覧表示するコードを見つけました( ここ から):

function SheetNames() { // Usage as custom function: =SheetNames( GoogleClock() )
try {
  var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets()
  var out = new Array( sheets.length+1 ) ;
  //out[0] = [ "Name" , "gid" ];
  for (var i = 1 ; i < sheets.length+1 ; i++ ) out[i] = [sheets[i-1].getName()];
  return out
}
catch( err ) {
  return "#ERROR!" 
}
}

私の質問は、最初の2つのシート名をスキップして、スクリプトが呼び出されたセルにリストの入力を開始するようにスクリプトを変更するにはどうすればよいですか?

var i = 1var i = 3に変更しようとしましたが、最初の2つのシート名はスキップされましたが、空白のセルも作成されました。最初の2つのシート名をスキップして、空白のセルを作成しないようにするにはどうすればよいですか?

10
Nathan

あなたは正しい考えを持っていましたが、出力配列は最初の項目を位置3に配置していました。代わりに、次のようにします。

for (var i = 3 ; i < sheets.length+1 ; i++ ) out[i-2] = [sheets[i-1].getName()];
9
ScampMichael