見出し画像

【Google Apps Script 通信 vol.4】スプレッドシートのシート名を取得しよう!①

こんにちは。きゅうりです。

今日はスプレッドシートのすべてのシート名を取得してみましょう!

GASを始める前に「スプレッドシートの基本機能に無いのかな?」と思って調べたら「GASで出来ます!」と出てきて、「プログラミングができない私には無理だ…悲しい…」と思っていたのが懐かしい。

あの頃の私に伝えてあげたい。プログラミング知識がゼロでも出来るからやってみてと。

さて、本題に入っていきましょう。

やること

スプレッドシートのすべてのシート名を取得して、出力シートに書き出す。

無題

今回もサンプルのスプレッドシートを用意したので、参考にしてください。

サンプルコード

いつも通り簡単な解説はコード内に記載しているので、見てみてください(*'▽')

function myFunction() {
 
 // 現在のスプレッドシートにアクセス
 var ss = SpreadsheetApp.getActiveSpreadsheet();
 
 //  出力シートにアクセス
 var outputSheet = ss.getSheetByName('出力');
 
 // スプレッドシートのすべてのシートを取得(この時、各シートの情報が配列に格納される)
 var sheets = ss.getSheets();
 
 // 出力シートにシート名を記載する(シート数分繰り返す)
 for(var i = 0;i < sheets.length; i++){
 
   // シート名を取得
   var sheetName = sheets[i].getSheetName();
 
   // 出力シートの最終行を取得(シート名を記載するセルを判定するため)
   var lastrow = outputSheet.getLastRow();
 
   //  値を入力する行を取得
   var row = lastrow +1;
     
   // 出力シートにシート名を記載
   outputSheet.getRange('A'+row).setValue(sheetName);
   }
}

ちょ…配列って何…

しれっとコードに出てきた配列

とってもざっくり説明すると、複数の値を保持するための箱のようなもので、下記のような構造になっています。

var 配列 = [値1,値2,値3,値4,値5]

[]の中に複数の値が入っているイメージです。

それぞれの値には左から順に0から番号が振られます。

値1 = 配列[0]
値2 = 配列[1]
値3 = 配列[2]
値4 = 配列[3]
値5 = 配列[4]

サンプルコードのシート名取得でsheets[i]としていたのは、その前段でシート名たちを配列としてデータ取得したからでした。

 // シート名を取得
 var sheetName = sheets[i].getSheetName();

配列はもっと奥が深いので、気になる方は調べてみてもいいかもしれません。

ただ、個人的には非エンジニアには少しだけハードルがある概念かなと感じています。(私はすぐに全部理解できませんでした。というか今も全部はわからない。)

まずは自分のやりたいことの実現に必要な知識があれば十分なので焦らず行きましょう!

スクリプト実行してみよう

サンプルコードを実行してみてください。

出力シートも一覧に入ってますね。スプレッドシートのすべてのシートに対して、シート名取得・書き出しを実行したので当たり前ですが、、このデータは不要ですよね。

無題

では次回、条件によってコード実行有無を制御する方法を見ていきましょう!

この記事が気に入ったらサポートをしてみませんか?