この記事では、Google Apps Script(GAS)を通して、プログラミング言語の基本を学びます。
その中でも特に重要な2つの概念である、「変数」と「関数」について解説します。
変数とは?—GASでデータを扱うための「魔法の箱」
自動化の第一歩として、今回はプログラミングの基本中の基本である「変数(へんすう)」について、掘り下げていきます。
1. 変数とは何?
「変数」を理解する上で、最も分かりやすいのが「データを入れるための箱」というイメージです。
変数は「名前付きの保管庫」
プログラミングにおける変数は、一時的にデータをしまっておくための、名前のついた保管庫(メモリ上の場所)です。
たとえば、スプレッドシートの特定のセルの値や、今日の日付など、後でプログラムの中で使いたい「データ」を、この箱に入れておくのです。
- データ(中身): 「今日の日付」「A1セルの値」「山田さんのメールアドレス」
- 変数(箱): プログラマが自由に決めた「名前」(例:
todayDate
、cellValue
、userMail
)
この「箱」に一度データを入れれば、その名前を呼ぶだけで、いつでも中身を取り出したり、新しい中身に入れ替えたりすることができます。だから「変わる数」と書くのですね。
■変数のイメージ

2. なぜ変数が必要なのか?
「わざわざ変数に入れる必要があるの?」と感じるかもしれませんが、変数は自動化において不可欠な役割を果たします。
a. データの再利用と効率化
最も大きなメリットは、データの再利用です。
もし変数を使わない場合、同じデータを何度も使うたびに、そのデータを取得する処理(例えば「スプレッドシートのA1セルの値を取得」という命令)を何度も書かなければなりません。
しかし、一度「cellValue
」という変数にA1セルの値を入れておけば、その後はcellValue
と書くだけで、その値を何度でも利用できます。コードがシンプルになり、読みやすさも格段に向上します。
b. コードのメンテナンス性向上
プログラムの中身を後で変更したい場合も、変数は非常に役立ちます。
例えば、メールの件名を「【重要】〇〇月〇〇日の報告書」から「【至急】〇〇月〇〇日の報告書」に変更したいとします。
もし件名を直接コードに書き込んでいた場合、プログラム全体を探してすべて修正しなければなりません。
しかし、mailSubject
という変数に件名を入れておけば、変数を定義している一箇所だけを直すだけで、プログラム全体にその変更が反映されます。
3. GASでの変数の「宣言」と「代入」の基本
実際にGASで変数を使うための具体的なルールを見ていきましょう。
GAS(Google Apps Script)はJavaScriptという言語をベースにしているため、変数の扱い方もそれに準じます。
変数の使い方には、主に以下の2つのステップがあります。
- 宣言(せんげん): 「こういう名前の箱を用意しますよ」とプログラムに伝えること。
- 代入(だいにゅう): 宣言した箱の中に「データ(値)」を入れること。
変数の宣言:let
または const
GASで変数を宣言するときは、主に以下の2つのキーワードを使います。
キーワード | 意味 | 用途 |
let | 中身を後から変えられる変数 | 後で計算結果や状態が変わる可能性があるデータ(例:カウンター、合計値) |
const | 中身が固定で変えられない定数 | 変更されないことが決まっているデータ(例:メールアドレス、スプレッドシートのID) |
初心者の方は、基本的には const
を使うことをおすすめします。変更しないことを明確にすることで、間違いを防ぐことができるからです。
変数の代入:=
(イコール)記号
宣言した変数に値を入れることを「代入」と呼び、イコール (=
) 記号を使います。
【重要】 プログラミングの世界では、この =
は「等しい」という意味ではなく、「右側の値を左側の変数に入れる」という意味になります。
実際に書いてみよう!
以下のコードをGASのエディタにコピーして実行してみましょう。(実行結果はログに出力されます)
// ① 変数を「宣言」して、同時に「代入」する(constを使用)
// 「userName」という名前の箱に「佐藤」というデータを入れます
const userName = "佐藤";
// ② 変数を使って、箱の中身を取り出す
// 「こんにちは、佐藤さん」というメッセージが完成します
const greeting = "こんにちは、" + userName + "さん";
// ③ ログに出力して中身を確認する
//
cosole.log(greeting);
// ④ letを使った変数の例(中身を後から変えられる)
let number = 10; // 10を代入
cosole.log(number); // 出力: 10
number = 20; // 20に上書き(再代入)
cosle.log(number); // 出力: 20
// 【補足】
// もしconstで宣言した変数に、後から別の値を代入しようとするとエラーになります。
// const fixedValue = 100;
// fixedValue = 200; // <- エラーが発生し、プログラムは動きません
この例でわかるように、変数は単なるデータの入れ物ではなく、コードを分かりやすく、効率的にしてくれる魔法の箱なのです。
関数とは?—自動化タスクを実行する「プログラムのまとまり」
「変数」というデータを保管する箱への理解ができたと思います。
ですが、その箱に入れたデータを使って「実際に何かを動かす」には、もう一つの重要な要素が必要です。それが、「関数(かんすう)」です。
変数が「材料(データ)」だとすれば、関数は「料理の手順(処理)が書かれたレシピ」のようなものです。
1. 関数とは何か?
関数とは、特定の処理をひとまとまりにしたプログラムのブロックのことです。
プログラミングでは、同じ処理を何度も実行したり、特定の目的のために一連の操作を行うことがよくあります。関数は、これらの処理に「名前」をつけてカプセル化(まとめること)を可能にします。
関数は「自動販売機」のイメージ
関数を理解する上で、最も分かりやすい例は「自動販売機」です。
- 名前(識別子): 「コーヒー自動販売機」
- インプット(引数): お金を入れる、ボタンを押す
- 処理(ロジック): 内部で「温める」「カップに注ぐ」といった作業を行う
- アウトプット(戻り値): 商品(コーヒー)が出てくる
利用者は、内部でどんな複雑な機械的な処理が行われているかを知る必要はありません。名前を呼ぶ(ボタンを押す)だけで、決まった手順が実行され、決まった結果が得られます。
GAS(Google Apps Script)で言えば、この「決まった手順」が、スプレッドシートへの書き込みやメールの送信といった自動化のタスクになります。
2. 関数を使う3つのメリット
なぜプログラムを関数としてまとめる必要があるのでしょうか?主なメリットは以下の3点です。
a. 再利用性:何度でも同じ処理を実行できる
一度「メール送信」の関数を作ってしまえば、あとは関数の名前を呼ぶだけで、プログラムのどこからでもメール送信の処理を実行できます。コードを何度も書く必要がなくなるため、非常に効率的です。
b. 可読性:コードが読みやすくなる
長い処理をすべて羅列するのではなく、「sendReportMail()
(レポートメールを送信する)」「calculateTotal()
(合計を計算する)」といった意味のある名前に処理をまとめることで、コード全体が何をしたいのか、一目で理解しやすくなります。
c. メンテナンス性:修正が簡単になる
もしメールの送信方法が変わった場合でも、修正するのは「sendReportMail()
」という一つの関数の中だけで済みます。プログラム全体を探して修正する必要がなくなるため、ミスの防止にもつながります。
3. GASでの関数の基本的な作り方
GASのエディタで関数を作るには、以下の基本構造を使います。
基本構造
GAS(JavaScript)では、function
(関数)というキーワードを使って関数を定義します。
// ① function キーワードで「これは関数ですよ」と宣言
// ② myFunction という関数に名前をつける
// ③ () の中に、関数に渡すデータ(引数:ひきすう)を指定する(今回はなし)
// ④ {} の中に、実行したい処理(自動化タスク)を記述する
function myFunction() {
// ここに実行したい処理を書く
cosole.log("この関数が実行されました。");
}
GASで最も基本的な関数は、この引数なしの形です。スプレッドシートやトリガーから実行される関数の多くは、この形式で定義されます。
カッコの呼び方
ちなみに、括弧にはそれぞれ呼び方があります。
()
: 丸括弧 (まるかっこ) / パーレン{}
: 波括弧 (なみかっこ) / ブレース[]
: 角括弧 (かくかっこ) / ブラケット
これらはよく使う名前なので覚えておくといいです。
実践!引数(ひきすう)を使った関数
関数は、外部からデータ(変数)を受け取って処理をすることができます。この受け取るデータを「引数(ひきすう)」と呼びます。
先ほどの自動販売機で言えば、「飲み物の種類」や「お金」が引数にあたります。
以下のコードでは、name
(名前)という引数を受け取り、それを使ってメッセージを作成する関数を定義しています。
// greetという名前の関数を定義し、引数として name を受け取る
function greet(name) {
// 受け取った name を使ってメッセージを作成
const message = "こんにちは、" + name + "さん!GASを始めましょう。";
// ログに出力
cosole.log(message);
}
// 関数の実行(呼び出し):名前を引数として渡す
// 1回目:佐藤というデータを渡して実行
greet("佐藤"); // ログ出力: こんにちは、佐藤さん!GASを始めましょう。
// 2回目:田中というデータを渡して実行
greet("田中"); // ログ出力: こんにちは、田中さん!GASを始めましょう。
このように、同じ処理(挨拶文の作成と出力)を、渡すデータ(引数)を変えるだけで、何度でも実行できるのが関数の大きな強みです。
【まとめ】変数と関数を使いこなしてGASの自動化へ!
自動化のプログラムを作る上で、「変数」と「関数」は車の両輪のようなものです。どちらが欠けても、プログラムを効率的に動かすことはできません。
項目 | 役割(イメージ) | 重要なポイント | GASでの基本的な書き方 |
変数 | データを入れる「箱」 | データの再利用とコードのメンテナンス性を向上させる。= は「代入」の意味。 | const myName = "佐藤"; |
関数 | 処理を実行する「レシピ」 | 複雑な処理に名前をつけ、何度でも実行可能にする。コードの可読性を高める。 | function processData(input) { ... } |
変数 (const
/ let
) の理解
変数は、プログラムの中で一時的に値(テキスト、数値、日付など)を保管し、名前で呼び出せるようにするものです。
const
:一度決めたら変えないデータ(定数)に使います。let
:後から中身を上書きする可能性があるデータに使います。
ほとんどのGASの処理では、const
を使って「この値は変えません」と宣言することで、意図しないバグを防ぐことができます。
関数 (function
) の理解
関数は、特定の目的を持った処理のまとまりです。GASのエディタで書くコードのほとんどは、この関数の中に記述されます。
- 引数(ひきすう):関数に渡すデータ(例:
function sendMail(subject, body)
のsubject
とbody
)。 - 再利用:一度定義すれば、何度でも呼び出して使うことができます。
それでは、以上です。