Fundamentals

Step 2: スプレッドシートを操作する

GASの基本は「スプレッドシートでの使用」です。セルの値を取得したり、書き込んだりする操作を通して、 「データを読み、処理し、結果を返す」というプログラムの基本的な流れを身につけましょう。

GASプログラム(関数)の基本構造

GASのコードは、「関数(function)」という単位で記述します。 関数とは、ひとまとまりの処理に名前をつけたものです。 最初は難しく感じるかもしれませんが、実際には「実行ボタンを押したときに動く一連の作業」と考えると分かりやすくなります。

function myProgram() {
  // 1. 「today」という名前の箱(変数)に、今日の日時を入れる
  const today = new Date();

  // 2. メッセージを組み立てる(文字列と変数を結合)
  const message = "プログラムを実行しました!時刻: " + today;

  // 3. 実行ログ(コンソール)に結果を表示する
  console.log(message);
}

functionキーワード

「これから関数を作ります」という宣言です。必ず小文字で書きます。

関数名 ()

自由に名前をつけられます。後ろに () をつけるのがルールです。実行ボタンを押す際、この名前を選択します。

中括弧 { }

この { } で囲まれた部分が「1つの処理のまとまり」です。命令はこの中に書いていきます。

文末のセミコロン ;

命令の終わりには ; をつける習慣をつけましょう。日本語の「。」のような役割です。

初心者が最初につまずきやすい点

多くの人は、関数名・丸括弧・波括弧の意味が曖昧なまま写経してしまいます。 ただ、この段階では全部を暗記する必要はありません。 まずは「関数の中に命令を書く」「その関数を実行する」という流れを理解できれば十分です。

GASの「住所」の考え方

スプレッドシートを操作するには、「どのファイルの、どのシートの、どのセルか」という順番で対象を指定する必要があります。 これは、現実で「会社 → 部署 → 棚 → ファイル」とたどるのに似ています。

1 SpreadsheetApp (アプリ全体)
getActiveSheet() (開いているシート)
getRange("A1") (特定のセル)

この考え方は今後ずっと使います

Gmail、Calendar、Drive、Documentでも同じです。 まず大元のアプリを指定し、次に対象を絞り、最後に操作します。 ここを理解すると、今後の学習がかなり楽になります。

1 セルに書き込む (setValue)

特定のセルに文字や数字を入れるには setValue を使います。 これは、GASで「結果をどこかに出す」ための基本操作です。

function writeToCell() {
  // 1. 今開いているシートを取得
  const sheet = SpreadsheetApp.getActiveSheet();
  
  // 2. セル A1 を指定して値を書き込む
  sheet.getRange("A1").setValue("こんにちは、GAS!");
  
  // 3. 行番号・列番号(1, 2 = B1)で指定することも可能
  sheet.getRange(1, 2).setValue(12345);
}

このコードの流れ

  1. 今操作しているシートを取得する
  2. A1セルを指定する
  3. そこへ値を書き込む

つまり getRange() で場所を指定し、setValue() で中身を入れている、という構造です。

初心者が間違えやすい点

  • getRange("A1")A1a1 と書いても動くことはありますが、基本は大文字表記にそろえると見やすくなります。
  • getRange(1, 2) は「1行2列目」なので、B1を指します。0からではなく、1から始まる点に注意が必要です。
  • setValue は1セル用です。複数セルを一気に書きたい場合は後で学ぶ setValues が必要になります。

実務での留意点

本番のシートでいきなり上書きすると、重要なデータを消してしまうことがあります。 学習や試作の段階では、テスト用のシートや空のセルを使って確認するのが安全です。

2 値を読み取る (getValue)

逆に、入力されている値を取得してプログラムで使うには getValue を使います。 GASは「入力されたデータを読む → 条件を判断する → 結果を返す」という流れで使うことが多いため、読み取りは非常に重要です。

function readFromCell() {
  const sheet = SpreadsheetApp.getActiveSheet();
  
  // セル A1 の値を取得
  const val = sheet.getRange("A1").getValue();
  
  // ログに出力して確認
  console.log("A1の中身は: " + val);
}

このコードの意味

getRange("A1") で A1セルを指定し、getValue() でその中身を取り出しています。 取り出した値は val に入れられ、その後ログで確認しています。

プログラムでは、取得した値をその場で使うより、いったん変数に入れておく方が読みやすく、後から処理を追加しやすくなります。

書き込みと読み取りはセットで覚える

Step 2では、setValuegetValue を対で理解することが大切です。 「データを入れる」「データを取る」という両方ができるようになると、次の自動化や条件分岐の理解がぐっと進みます。

実務ではどう使われる?

入力フォームの代わり

シートの特定セルに担当者名や日付を入れ、それをもとにメール文や報告書を自動生成することがあります。

一覧表の更新

ある条件を満たしたらセルに「完了」と書き込み、未処理データを管理する、といった使い方がよくあります。

通知や連携の起点

A列のメールアドレスを読み取り、B列の名前を使って個別メールを送る、という処理の出発点になります。

データチェック

入力漏れや不正な値を見つけたら、別セルにエラー表示を出すなど、品質管理にも使えます。

ご提示いただいたコードに、**「appendRowの使い方のヒント」**を盛り込んだ詳細版に書き換えました。 初学者が特につまずきやすい「配列の `[]` 記号」について視覚的なヒントを追加し、より学習効果を高める構成にしています。 ```html

やってみよう!ミニ課題

以下の機能を持つプログラムを myFunction の中に作ってみてください。

  • セル A1 に自分の名前を書き込む。
  • その値を読み取って console.log で表示する。
  • 最後に appendRow を使って「今日の日付、名前、学習中」という1行を追加する。

appendRow のヒント

appendRow は、データの最後の行に新しい行を追加する命令です。
追加したい中身を [ ](角括弧:かっこ) で囲んで、カンマで区切って渡すのがルールです。

// 書き方のイメージ(配列 [ ] を使うのがポイント!)
sheet.appendRow(["A列の中身", "B列の中身", "C列..."]);

この課題で身につくこと

この課題では、「書く」「読む」「追加する」という3つの基本操作を一度に練習できます。 2026年の業務自動化において、最も頻繁に使う操作の組み合わせです。処理の順番を意識して書いてみましょう。

Step 2 のまとめ

・GASでは、スプレッドシートを「対象をたどって操作する」考え方で扱います。

setValue() は1つのセルに書き込む命令です。

getValue() は1つのセルから値を取り出す命令です。

・「場所を指定する」→「値を入れる / 取り出す」という流れが基本です。

・実務では、本番データを壊さないようにテスト用のシートで確認する習慣が重要です。

前のステップへ(準備編) 次のステップへ(自動化編)
```