GAS入門講座 第5回|constとletでデータを一時的に覚えよう

GAS入門講座第5回 constとletでデータを一時的に覚えようアイキャッチ画像

第4回では、コードに説明文を残すコメントの書き方(// や /* */)と、後から見返しても理解しやすいコードを作るコツを整理しました。コードの目的をメモしておく習慣は、これからのGAS学習で大いに役立ちます。

第5回では、プログラミングの超重要概念である「変数(const と let)」を解説します。データに名前を付けて一時的に保存する方法を覚えると、同じ値を何度も使ったり、計算途中の値を更新したりといった処理がスムーズに書けるようになります。

第5回のゴール

今回のゴールは、const と let の違いを理解し、適切に使い分けてデータを扱えるようになることです。

  • 変数とは何か(データを入れる箱)をイメージできる
  • 再代入しない値に const を使える
  • 途中で値を変える変数に let を使える
  • 変数を使うことでコードが読みやすく、修正しやすくなるメリットがわかる

変数とは?(値に名前を付ける箱)

変数とは、データ(文字列や数値、シートオブジェクトなど)を一時的に入れておくための「名前付きの箱」です。

プログラミングでは、同じデータやオブジェクトを何度も参照したり、途中で計算結果を変えたりします。変数を使うことで、値の意味がわかりやすくなり、コードの修正も1か所の変更で済むようになります。

今回使うサンプルコード

今回は、文字や数値を変数に入れ、スプレッドシートのセルに書き込みながら、let で数値を更新していくサンプルコードを使います。

function variablePractice() {
  // 再代入しないものは const を使う
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  const title = "GAS学習メモ";

  // 後から値を変更するものは let を使う
  let count = 1;

  // A1セルにタイトル、A2セルに現在のカウントを入力
  sheet.getRange("A1").setValue(title);
  sheet.getRange("A2").setValue(count);

  // カウントを1増やす(再代入)
  count = count + 1;

  // A3セルに更新後のカウント(2)を入力
  sheet.getRange("A3").setValue(count);
}

このコードを実行すると、A1に「GAS学習メモ」、A2に「1」、A3に「2」がそれぞれ書き込まれます。

実行手順

  1. Googleスプレッドシートを開きます。
  2. メニューから「拡張機能」→「Apps Script」を開きます。
  3. エディタにサンプルコードを貼り付けます。
  4. 保存します(Ctrl + S または Cmd + S)。
  5. 関数名で variablePractice を選択します。
  6. 「実行」ボタンを押します。
  7. スプレッドシートのA1、A2、A3セルに正しい値が入力されたか確認します。

const と let の使い分け

GAS(JavaScript)で宣言するキーワードは主に constlet の2つです。

キーワード特徴再代入主な使いどころ
const定数(再代入不可)× 不可シートの取得、固定のメッセージ、設定値など
let変数(再代入可能)○ 可能ループのカウント、計算途中の合計値など

基本ルールとして、「まずはすべて const で書き、後から値を入れ替える必要が出たときだけ let に変更する」 という方針をおすすめします。うっかり値を上書きしてしまうバグを防ぐことができます。

分かりやすい変数名の付け方

変数名は自由につけられますが、中身がひと目で推測できる名前をつけるのが鉄則です。

  • 良い例const sheet = ... / const userEmail = ... / let totalAmount = 0
  • 悪い例const x = ... / let a1 = ... (何が入っているか分からない)
  • キャメルケース(2語以上の場合は2語目以降を大文字にする):userName, targetRange

初心者がよくつまずくポイント

  • const で宣言した変数に再代入してしまうTypeError: Assignment to constant variable. というエラーが発生します。再代入が必要なら let に切り替えましょう。
  • 変数名に constlet を繰り返し付けてしまう:宣言するとき(最初の一度)だけ const x = ... と書き、値を変更するときは x = ... と書きます。
  • 引用符(" ")で囲んでしまうsetValue(count)setValue("count") と書いてしまうと、変数の中身ではなく文字通りの「count」が入力されてしまいます。

小さな練習

理解を深めるために、次の練習を行ってみましょう。

  1. const title = ... の文字を自分の好きなタイトルに変えて実行してみる
  2. const title = "新しいタイトル"; をコードの下部に追加して再代入を試し、エラーが出ることを確認する
  3. let count の初期値を 10 に変えて実行し、A2セルとA3セルの値がどう変わるか確認する

関連記事・参考リンク

まとめ

今回は、GAS入門講座の第5回として、constlet を使った変数の基本を学びました。

変数はプログラムの基本中の基本です。「再代入しないものは const」「再代入するものは let」という原則を押さえて、わかりやすい変数名を付ける癖をつけていきましょう。

次回は、「文字列をつなげてメッセージを作ろう」(文字列結合とテンプレート文字列)を解説します。