関数ってどう作るの?初心者がつまずいたところと使いこなせた理由
GASを始めたばかりのころ「関数ってどう作るの?」「引数?戻り値?なにそれ?」と戸惑った自分が、実際にどうつまずいて、どうやって理解していったか。その過程と、関数を使って便利になった実感をリアルに紹介します。
このブログは、Google Apps Script(GAS)を使った自作ツールの記録や、開発の過程での気づきをまとめたものです。
丁寧な解説というより、「こんなこともGASでできるんだ」というアイディアのきっかけになれば幸いです。
関数ってなに?初心者だった自分のつまずき
GASを独学で触り始めたとき、一番最初に出てきた謎ワードのひとつが「関数」でした。
function doSomething() {} とか出てきて、「ああ、これは何かやるやつね」くらいの理解でコピペして動かしていましたが、いざ自分で何か作りたいとなったときに、
- どうやって作るのか?
- どこに何を書けばいいのか?
- 「引数」とか「戻り値」とは?
- 関数は一つじゃダメなのか?たくさんあってもいいのか?
とにかく、分からないことだらけでした。
この記事では、当時の自分が実際につまずいたこと、どうやって理解したか、そして「関数を使うと何が便利なのか」まで、リアルにまとめてみます。
「関数 = よく使う処理をひとまとめにしたもの」ってよく言われますが、最初はピンときませんでした。
でも、何度かGASを書いていくうちに「同じようなコード、何回も書いてる…」と気づきました
たとえば、スプレッドシートからデータを取得して、整形して、ログに出す処理。ちょっとずつ違うけど、ほぼ同じです。
このとき「毎回コピペして手直しするより、まとめた方が早いし安全だろう」と思ったのが、関数を自分で使おうと思ったきっかけでした。
関数の基本的な書き方
これが一番シンプルな形です。「関数を作って、呼び出す」という流れが基本。
function sayHello() {
Logger.log("こんにちは!");
}
sayHello();
「こんにちは!」とログを出す関数sayHello()を作成して、呼び出しています。
引数と戻り値とは
引数
引数とは、関数に「これを使って処理してね」と渡す値のことです。
料理でたとえるなら、関数はレシピ(手順)であり、引数はその材料にあたります。
たとえば、数値や文字列などを引数として渡すことで、関数はその値を使って処理を行います。
function greet(name) {
Logger.log("こんにちは " + name + "さん!");
}
greet("田中"); // → 「こんにちは 田中さん!」
greet(name)のnameが引数です。
( )に何か値を入れると、入れた値に応じて結果が反映されます
戻り値
戻り値とは、関数が処理を終えたあとに「これが結果です」と返してくれる値のことです。
関数内で計算や処理を行った結果を、呼び出し元に伝えるために使います。
たとえば、2つの数字を足し算する関数であれば、足し算の結果が戻り値になります。
function add(a, b) {
return a + b;
}
let result = add(3, 5);
Logger.log(result); // → 8
returnの後に記載された内容が、その関数の戻り値になります。
引数と戻り値を使うことで、関数は特定のデータに依存せず、いろいろな場面で再利用できるようになります。
つまり、処理の汎用性や柔軟性が高まり、「同じようなコードを何度も書かなくて済む」ようになるのです。
実際に使って便利だった例
シートのデータ取得処理を関数にした例です。
function getActiveSheetData() {
let sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
return sheet.getDataRange().getValues();
}
これを使うことで、複数の関数から同じ処理を呼び出せて、保守がラクになりました。
関数のメリット(実感ベース)
① コードがスッキリして読みやすい
↓まとめる前
let sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
let data = sheet.getDataRange().getValues();
// この2行を繰り返し使用
↓まとめた後
let data = getActiveSheetData();
② 修正がラク → ミス防止にも
たとえば「データ取得方法を変更したい」となっても、関数1か所直すだけでOKです。
コピペで同じ処理を何回も書いてると、どれか直し忘れてバグになったりしがちです。
③ 使い回しがしやすい
他のツールでも、「あのとき使ったgetData関数、また使えるな」って感じでコピペして再利用できます。
ちょっと直せば流用できるし、ツールの作成スピードも上がりました。
補足:関数は1個じゃなくていい
これは完全に初心者あるあるだと思うんですが、最初「全部の処理を1個の関数にまとめるように」してしまいがちです。
でも、それだと中がごちゃごちゃして見づらいし、結局あとで困ります。
いまは「処理の単位で小さく関数に分ける」ようにしています。
まとめ
最初は難しく感じた「関数」ですが、慣れるとGASでツールを作る上で欠かせない存在になります。
自分のつまずきが誰かの参考になればうれしいです。
関連リンク
次に学べる内容や、関連する実例はこちらをご覧ください。