![見出し画像](https://assets.st-note.com/production/uploads/images/129151648/rectangle_large_type_2_18977fc55226506d0dc29ba8ac880237.png?width=1200)
4-4 ちゃんと解説GAS
全体
function myFunction() {
// スプレッドシートを取得
const ss = SpreadsheetApp.getActiveSpreadsheet();
// シートオブジェクトを取得
const sheet = ss.getSheetByName('シート1');
// B4:B14セルを選択
var rangeB = sheet.getRange('B4:B14');
// セルの値を取得
var valueB = rangeB.getValues();
// 格納範囲(出力先)を取得
var rangeD = sheet.getRange('D4:D14');
// セルの値を取得
var valueD= rangeB.getValues();
// 取得した最初と2番目のセルだけ10倍する
valueD[0][0] = valueD[0][0] * 10;
valueD[1][0] = valueD[1][0] * 10;
// セルの値を格納
rangeD.setValues(valueD);
}
解説
// スプレッドシートを取得
const ss = SpreadsheetApp.getActiveSpreadsheet();
おまじない
いま使っている(このApps Scriptが格納されている)
すべてのシートを含むスプレッドシート全体を特定し「ss」変数に格納します。
// シートオブジェクトを取得
const sheet = ss.getSheetByName('シート1');
上で特定しss変数に格納されたスプレッドシート全体から
使用するシートを「sheet」 変数へ格納します。
この場合は、('シート1')で指定された「シート1」を指定します。
// B4:B14セルを選択
var rangeB = sheet.getRange('B4:B14');
上で指定した「シート1」が格納された「sheet」変数から
値を取得するセル範囲(B4:B14)を「rangeB」変数へ格納します。
「rangeB」の「B」はB列だよということを忘れないよう命名しました。
// セルの値を取得
var valueB = rangeB.getValues();
上で指定したセル範囲(B4:B14)が格納された「rangeB」変数から
セルの値を取得し、「valueB」変数へ格納します。
「valueB」の「B」はB列だよということを忘れないよう命名しました。
// 格納範囲(出力先)を取得
var rangeD = sheet.getRange('D4:D14');
上で指定した「シート1」が格納された「sheet」変数から
値をセットするセル範囲(D4:D14)を「rangeD」変数へ格納します。
「rangeD」の「D」はD列だよということを忘れないよう命名しました。
// セルの値を取得
var valueD= rangeB.getValues();
3つ上で指定したセル範囲(B4:B14)が格納された「rangeB」変数から
セルの値を取得し、「valueD」変数へ格納します。
「valueD」の「D」は格納する先がD列だよということを忘れないよう命名しました。
これで、B列の値が格納する先の変数「valueD」へ格納されました。
// 取得した最初と2番目のセルだけ10倍する
valueD[0][0] = valueD[0][0] * 10;
上で取得したB列の値が格納された変数「valueD」の最初のセルだけ値を10倍します。
valueD[1][0] = valueD[1][0] * 10;
上で取得したB列の値が格納された変数「valueD」の2番目のセルだけ値を10倍します。
<<ここでちょっと高度>>
変数「valueD」にはB4:B14範囲の値が「配列」という形で格納されます。
配列は行と列の2つの単位で格納されます。
valueD[1][0] は
最初の[1]が行を
2番目の[0]が列を
表すので、この変数にはB4:B14範囲から2行目の1列目の値(6)が格納されます。
[1] は0からはじまるので2行目を指します。
![](https://assets.st-note.com/img/1706511630027-7RtnYGaSN8.png)
変数の関連図
![](https://assets.st-note.com/img/1706661690484-uwyKhg0aLS.png?width=1200)
宿題
この関数には一つ無駄な処理が含まれていました。
見つけた方はコメントください。
お礼に「いいね」を差し上げます。
この記事が気に入ったらサポートをしてみませんか?