GAS_week2
スプレッドシート〜出力(実際にスプレッドシートにGASで記入)〜
はーい!こんにちは!
今回はGASとスプレッドシートを用いた情報社会に強い人材になるための第2歩!
前提
GAS_week1が完璧
これみてない人は先にやっちゃいましょう!
では早速やってきましょう!
引数って?
これ答えれる人は飛ばしちゃってください!
GASを使うに当たって関数と引数を使いこなせると一歩上へ行けます!
例えば,関数f(x)を定義します.
f(x) = x^2 + x + 1
この関数に対して,**f(2)**はなんでしょう?
・
・
・
答えは f(2) = 7 ですね!
これっていうのが,
f(2) = 2^2 + 2 + 1
って計算してるわけですよ!
このxを関数に対して引数って感覚!(変数のこと)
じゃあどんなのがあるのか?ってことで便利な関数を紹介!
//数字→列名(アルファベット)
function wmap_column_convert(colmun_number) {
var sheet = SpreadsheetApp.getActiveSheet();
var result = sheet.getRange(1, colmun_number);
result = result.getA1Notation();
result = result.replace(/\d/,'');
return result;
}
これスプレッドシートにGAS組むときめっちゃ便利!
例えば
function main(){
var example = wmap_column_convert(3);
Logger.log(example);
}
function wmap_column_convert(colmun_number) {
var sheet = SpreadsheetApp.getActiveSheet();
var result = sheet.getRange(1, colmun_number);
result = result.getA1Notation();
result = result.replace(/\d/,'');
return result;
}
で mainを実行すると,ログには**「C」**って出てきます!
これは,wmap_column_convert(3)とすることで,「wmap_column_convert」関数の中に記述している「column_number」に3が代入されて処理が行われます.
そしてこの関数は「main」のなかで行われているんです!
このように関数を別で定義して引数を指定することで便利な処理をやってくれるんです!
ちょっとここは難しかったかな??
では本題に戻りましょう!
今回は前回の続きということで下のコードに書き足していきましょう!
function myfunction() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('シート1');
var range = sheet.getDataRange().getValues();
Logger.log(range[1][1]+range[2][1]+range[3][1]+"です");
}
**では,「B5」に「です」と入力するコードを書きたいと思います!
function myfunction() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('シート1');
var range = sheet.getDataRange().getValues();
Logger.log(range[1][1]+range[2][1]+range[3][1]+"です");
//追記
var message = "です";
sheet.getRange(5, 2).setValue(message);
//ここまで
}
これで「myfunction」を実行すると,
実行結果
ログ
となります!
さて詳しい解説です!
sheet.getRange(行番号, 列番号).setValue(出力するもの);
という一文で,スプレッドシートへの記入が行われます!
*ここで,「range[行番号][列番号]」の時との注意点が!
range[行番号][列番号]の時は,配列の概念を使うため開始番号が0でした
しかし,
getRange(行番号, 列番号)の場合は,配列ではないため開始番号が1です
この点だけ注意していれば大丈夫!
さあ今回の応用すると色々と作業が自動化できちゃいます!
次回はこれを使った「for文」について書こうと思います!
