処理をひとまとめにして読みやすくする
GASでコードを書いていると、同じような処理を何度も書きたくなる場面が出てきます。
そのまま書き続けると、コードが長くなり、修正もしづらくなります。
そこで重要になるのが「関数」という考え方です。
関数を使うと、処理をひとまとめにして、必要なタイミングで呼び出せるようになります。
この記事では、GASにおける関数の基本的な作り方と、引数・戻り値の考え方を整理します。
難しい設計論には踏み込まず、実務で困らないための基礎を押さえていきましょう。
目次
関数とは何か
関数とは、特定の処理をひとまとめにしたものです。
「この処理を実行したい」というときに、関数名を呼び出すだけで処理が動きます。
関数を使わずにコードを書き続けると、同じ処理のコピーが増えやすくなります。
その結果、修正漏れやミスが起きやすくなり、保守が難しくなります。
関数としてまとめておけば、修正は1か所で済みます。
この「変更点を1か所に集められる」ことが、関数を使う最大のメリットです。
また、関数は「処理の意味」を名前で表現できます。
処理の中身を細かく読まなくても、関数名を見るだけで意図が伝わるようになります。
関数の基本的な書き方
GASでは、function キーワードを使って関数を定義します。
最もシンプルな関数は次のような形です。
function sayHello() {
Logger.log('Hello GAS');
}
この関数を実行すると、Logger.logに文字列が出力されます。
GASでは「どの関数を実行するか」をエディタで選択して実行できるため、関数単位で動作確認しやすいのが特徴です。
ここでのポイントは、関数名が処理内容を説明していることです。
sayHelloという名前から「挨拶を出す処理」だと推測でき、読み手に優しいコードになります。
関数名は、短すぎても長すぎても扱いづらくなります。
まずは「何をする関数か」が伝わる命名を意識すると、全体が整理されやすくなります。
引数の考え方と使いどころ
引数とは、関数に渡す値のことです。
関数の中で使う情報を、外から受け取るために利用します。
引数がない関数は、毎回同じ動作になります。
一方で、引数を使うと「入力に応じて動作を変える関数」を作れます。
例えば「渡された名前で挨拶する」関数は次のように書けます。
function greet(name) {
Logger.log('こんにちは ' + name);
}
この関数の引数はnameです。
呼び出し側で指定した値が、関数内のnameに入って処理に使われます。
引数を使うと、同じ処理をさまざまなデータで使い回せるようになります。
スプレッドシートの「対象シート名」や「列番号」などを引数にすれば、関数の汎用性が上がります。
ただし、引数を増やしすぎると呼び出しが難しくなります。
最初は1〜2個の引数から始め、「必要に応じて増やす」くらいが実務的です。
戻り値の考え方と使いどころ
戻り値とは、関数の処理結果として返される値のことです。
return を使って、関数の外に結果を返します。
例えば、2つの数値を足して返す関数は次のようになります。
function add(a, b) {
return a + b;
}
戻り値を使うメリットは、「処理」と「結果の利用」を分離できることです。
計算や判定は関数に任せ、結果をどう使うかは呼び出し側で決められます。
例えば、次のように結果を変数に入れたり、別の処理に渡したりできます。
function useAdd() {
const result = add(3, 5);
Logger.log(result);
}
GASの実務では、戻り値を使って「判定結果を返す関数」を作ることが多くなります。
例えば、入力チェックの結果をtrue/falseで返す関数を作ると、全体の処理が読みやすくなります。
関数で整理する実務パターン
実務では、処理を「取得」「加工・判定」「出力」に分けて考えると整理しやすくなります。
関数は、この分割を実現するための道具です。
例えば「値が正の数かどうか」を判定するだけの関数は次のように書けます。
function isPositive(value) {
return value > 0;
}
この関数は判定だけを担当し、ループ処理やログ出力は別の関数が担当します。
責務を分けることで、1つの関数がやることが明確になり、修正もしやすくなります。
実際に「配列を順に見て、正の数だけログに出す」処理は次のように書けます。
function logPositiveNumbers() {
const numbers = [3, -1, 0, 5];
for (let i = 0; i < numbers.length; i++) {
if (isPositive(numbers[i])) {
Logger.log(numbers[i]);
}
}
}
5
この程度の小さな分割でも、コードの見通しは大きく良くなります。
最初から完璧に分ける必要はありません。
「同じ処理を書いている」と感じたら、関数に切り出す意識を持つだけで十分です。
次回のLogger.log回でも、関数に分けておくとデバッグが圧倒的に楽になります。
関数は「読みやすさ」だけでなく、「調査しやすさ」にも直結する基礎だと覚えておきましょう。
まとめ
この記事では、GASの関数の基本として、作り方・引数・戻り値の考え方を整理しました。
関数を使うことで、コードは読みやすく、修正しやすくなります。
次回は、Logger.logを使ったデバッグ方法を解説します。
実際にコードを書きながら、動作確認と不具合の切り分けの基本を学んでいきましょう。
0 件のコメント:
コメントを投稿