見出し画像

プログラミングを勉強します61日目:200526

前回までの振り返り
■前回の外部設計
https://note.com/daichan_dream/n/n09f74decd548
■前回の内部設計
https://note.com/daichan_dream/n/n09f74decd548
■アウトプットイメージ
https://note.com/daichan_dream/n/n2ab044382c9b

昨日は下記サイトで学び直し10日目でした。
■Google Apps Script(GAS)入門
https://excel-ubara.com/apps_script1/GAS014.html
スプレットシート中の複数シートあるうちの指定したシートに
文字を入力するというものを学びました。

今日もシートの選択して操作を学んでいきます。
昨日はシート名を指定してましたが、今回はインデックスという
考えを利用しての指定です。

function sample14_2() {
 var ash = SpreadsheetApp.getActiveSpreadsheet()
 var sheet = ash.getSheets()[1]
 sheet.getRange(2, 1).setValue("ども")
}

getSheets()[1]の[1]がインデックスと言います。インデックスは
スプレットシートの一番左から0、1、2・・・となっていきます。
この場合は左から2つ目のシートのA2に『ども』って
入れるとなっています。

次の課題はスプレットシートに内に何個シートがあるかを出すようにする
というものです。

function sample14_4() {
 var ash = SpreadsheetApp.getActiveSpreadsheet()
 var i = ash.getSheets().length
 Browser.msgBox(i)
}

ポイントはash.getSheets().lengthです。
これでアクティブなスプレットシートの内のシート数が
いくつかを出します。最後の Browser.msgBox(i)でシート数を
ポップで表示されます。

次の課題は先程のシート枚数を取得して全てのシートのC15に
シート名を入れるというものです。

function sample14_5() {
 var ash = SpreadsheetApp.getActiveSpreadsheet()
 var sheets = ash.getSheets()
 for (i = 0; i < ash.getSheets().length; i++) {
   sheets[i].getRange(15, 3).setValue(sheets[i].getName())
 }
}

今までの知識の応用編ですね。
var ash = SpreadsheetApp.getActiveSpreadsheet():おなじみの宣言
var sheets = ash.getSheets():おなじみの宣言
ここからが応用編です。
for (i = 0; i < ash.getSheets().length; i++) {
sheets[i].getRange(15, 3).setValue(sheets[i].getName())
まずfor文は繰り返しでした。iの始まりは0からでiに1ずつ足していき
合計シート枚数より少ない状態まで処理していくとことが書かれています。
sheets[i].getRange(15, 3).setValue(sheets[i].getName()は
sheet[シートのインデックス]のgetRange( C15 )に
setValue(sheet[シートのインデックス]の名前を取得する)値を入れる
という流れになっています。
あとはこれで、シート枚数が6枚なら6枚まで繰り返して終了です。

今日はここまでです。
明日は複数のスプレットシートを扱うをやっていきます。
https://excel-ubara.com/apps_script1/GAS015.html

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