初心者でも簡単にできるGAS 関数作成と呼び出し方法『2021年最新版』
関数とは何か?
まず皆さんに関数の概念をしっかりと理解していただかないと後々躓くので
最初に関数とは何かを理解していただきたいです。
関数とは、ある値を与えると別の値を返すものです。これがすごく単純なようでとても重要な考え方になります。
GAS 関数作成方法と呼び出し方
まずは関数とは何かを簡単に説明してしまいます。 GASでいうところの関数とは下記の一連の処理をまとめてあるものを指します。
function 関数名(){
// 処理
}
1つのGASのファイルに複数の関数をまとめて関数の中で別の関数を呼び出すことが可能です。
fanction main(){
sample1();
sample2();
}
function sample1(){
logger.log('テストだよ①');
}
function sample2(){
logger.log('テストだよ②');
}
上記のGASのコードはmainの関数の中にsample1と2が含まれた状態になっています。そのため関数mainを実行した段階でsample1と2のテストだよ①と②が出力されます。実際にフローを確認すると下記のようになっています。
function main()を実行したことでsample1のデータとsample2のデータが順番に吐き出されたのがわかるかと思います。
GAS関数の引数と戻り値
関数の引数と戻り値を習得すると関数を便利に操作できるようになってきます。
// 呼び出す関数
function main(){
test1("サンプル")
}
// 呼び出される関数
function test1(str){
Logger.log(str);
}
呼び出される関数のtest1の後の()が引数です。ここで指定した引数が、処理で利用されます。test1関数を呼び出す時には呼び出す関数のtest1の関数の後の()に引数を指定します。実際には下記図のようなフローになります。引数を指定した関数を作れば呼び出し側で引数に何を渡すか決めることが出来るようになります。
次は戻り値を使う方法を解説します。
引数を使用して処理した結果を下記のreturnを使って返すことが可能になります。
return ○○
呼び出す方の関数には、return値や変数を受け取るための変数を用意しておきます。
// 呼び出す関数
function main(){
var ans = kakezan(3,1)
Logger.log(ans)
}
// 呼び出される関数
function kakezan(int1, int2){
var kotae = int1 * int2
return kotae //ここが戻り値の指定
}
変数ansに関数kakezanの答えが格納され、Logger.logで出力されるといったフローがこれで完成です。
関数の引数と戻り値を使用した練習問題
実際に関数の引数と戻り値を使用した練習問題をやっていきます。早速下記のサンプルデータをダウンロードしてください。
今回の目標は下記のように引数と戻り値を使用してA1の値とB1の値を足した時の答えをD1に入力出来るようにします。
実際にコードを書いていきます。
function main() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[5]
var a1_cell = sheet.getRange(1,1).getValue();
var b1_cell = sheet.getRange(1,2).getValue();
var ans = sub1(a1_cell,b1_cell);
sheet.getRange(1,4).setValue(ans);
}
function sub1(a,b) {
var ans = a+b;
return ans
}
上記のコードのようにmainでA1とB2の値をgetValue();を使用して変数(a1_cell,b1_cell)に格納したらsub1()の関数を使用して足し算をしていきます。この時sub1()関数のaとbはmain()関数で記述したvar ans = sub1(a1_cell,b1_cell);のa1_cellとb1_cellが代入されます。ちょっと難しいですよね。でもここがとても重要なポイントなのでわかるまで繰り返して理解しましょう。下記では図解で今回のコードのポイントをまとめました。
書いたコードを実行してみてD1に2が記入されたら今回の目標は達成です^^引数と戻り値は、今後もかなり重要なポイントになるのでぜひ押さえておきましょう♪
まとめ
今回は関数作成の方法と呼び出し方、戻り値と引数について解説しましたがいかがでしたでしょうか。実際に今回の内容を理解できればmainのコードと処理のコードを分けていけるようになるので長いコードを書いていく際に必要なスキルになるので是非習得してしまってください^^