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の「住所」の考え方
スプレッドシートを操作するには、「どのファイルの、どのシートの、どのセルか」という順番で対象を指定する必要があります。 これは、現実で「会社 → 部署 → 棚 → ファイル」とたどるのに似ています。
この考え方は今後ずっと使います
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); }
このコードの流れ
- 今操作しているシートを取得する
- A1セルを指定する
- そこへ値を書き込む
つまり getRange() で場所を指定し、setValue() で中身を入れている、という構造です。
初心者が間違えやすい点
getRange("A1")のA1をa1と書いても動くことはありますが、基本は大文字表記にそろえると見やすくなります。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では、setValue と getValue を対で理解することが大切です。
「データを入れる」「データを取る」という両方ができるようになると、次の自動化や条件分岐の理解がぐっと進みます。
実務ではどう使われる?
入力フォームの代わり
シートの特定セルに担当者名や日付を入れ、それをもとにメール文や報告書を自動生成することがあります。
一覧表の更新
ある条件を満たしたらセルに「完了」と書き込み、未処理データを管理する、といった使い方がよくあります。
通知や連携の起点
A列のメールアドレスを読み取り、B列の名前を使って個別メールを送る、という処理の出発点になります。
データチェック
入力漏れや不正な値を見つけたら、別セルにエラー表示を出すなど、品質管理にも使えます。
やってみよう!ミニ課題
以下の機能を持つプログラムを myFunction の中に作ってみてください。
- セル A1 に自分の名前を書き込む。
- その値を読み取って
console.logで表示する。 - 最後に
appendRowを使って「今日の日付、名前、学習中」という1行を追加する。
appendRow のヒント
appendRow は、データの最後の行に新しい行を追加する命令です。
追加したい中身を [ ](角括弧:かっこ) で囲んで、カンマで区切って渡すのがルールです。
// 書き方のイメージ(配列 [ ] を使うのがポイント!) sheet.appendRow(["A列の中身", "B列の中身", "C列..."]);
この課題で身につくこと
この課題では、「書く」「読む」「追加する」という3つの基本操作を一度に練習できます。 2026年の業務自動化において、最も頻繁に使う操作の組み合わせです。処理の順番を意識して書いてみましょう。
回答例
function challengeAnswer() { const sheet = SpreadsheetApp.getActiveSheet(); // 1. セル A1 に名前を書き込む const myName = "田中太郎"; sheet.getRange("A1").setValue(myName); // 2. A1 の値を読み取ってログに表示 const val = sheet.getRange("A1").getValue(); console.log("取得した名前: " + val); // 3. 最終行に追記する(2026年の今日の日付を取得) const today = new Date(); sheet.appendRow([today, val, "学習中"]); }
💡 解説
すでに変数 myName に名前が入っていますが、あえて getValue()
でシートから読み直すことで、実務でよくある「シートにある値を取得して別の場所に使う」という流れを再現しています。
appendRow の中にある [today, val, "学習中"] が「1行分」として扱われます。
Step 2 のまとめ
・GASでは、スプレッドシートを「対象をたどって操作する」考え方で扱います。
・setValue() は1つのセルに書き込む命令です。
・getValue() は1つのセルから値を取り出す命令です。
・「場所を指定する」→「値を入れる / 取り出す」という流れが基本です。
・実務では、本番データを壊さないようにテスト用のシートで確認する習慣が重要です。