GASの始め方|Googleスプレッドシートから最初のスクリプトを作る手順
Googleスプレッドシートを開いて、手作業でデータを整理する時間が毎日のように発生している。そんな状態から抜け出す第一歩が、GAS(Google Apps Script)です。プログラミング未経験でも、スプレッドシートの画面からそのままスクリプトエディタを開けるので、環境構築の手間がありません。この記事では、GASとは何かという基本から、実際にスプレッドシート上で最初のスクリプトを動かすところまでを、一つずつ手順を追って解説します。
目次
GAS(Google Apps Script)とは何か
GAS(Google Apps Script)は、Googleが提供するクラウド型のスクリプト環境です。スプレッドシート、Gmail、Googleドライブ、Googleカレンダーなど、Googleの各サービスをプログラムで操作できます。
言語はJavaScriptがベースになっています。Webブラウザの中で動くJavaScriptとほぼ同じ文法なので、JavaScriptを触ったことがある方であればすぐに馴染めます。まったくの未経験でも、スプレッドシートの関数を使ったことがあれば、その延長線上で理解できる仕組みです。
GASの最大の特徴は、Googleアカウントさえあればすぐに始められることです。ソフトウェアのインストールも、サーバーの契約も不要です。スプレッドシートのメニューからスクリプトエディタを開くだけで、コードを書いて実行できます。
GASが選ばれる3つの理由
GASが中小企業の業務改善で使われるケースが増えているのには、明確な理由があります。
1つ目は、無料で使えることです。Googleアカウントがあれば追加費用は発生しません。有料のRPAツールやSaaS製品と比べて、導入コストがゼロという点は大きなメリットです。
2つ目は、Google Workspaceとの親和性の高さです。スプレッドシート、Googleフォーム、Gmail、Googleドライブなど、日常的に使っているツールをそのまま連携できます。データの入力から集計、通知、ファイル管理まで、バラバラだった作業を一つの流れにまとめられます。
3つ目は、クラウドで動くことです。GASはGoogleのサーバー上で実行されるため、自分のPCの電源を切っていてもスクリプトが動きます。毎朝9時にデータを集計して通知する、といった定期実行もGAS単体で実現できます。
GASでできること ― スプレッドシート自動化の具体例
GASで何ができるのか、スプレッドシートに関連する場面に絞って具体的に見ていきます。ここで紹介するのは、すべてGASの標準機能だけで実現できるものです。
この領域でつまずきやすいのは、ツール選定よりも「業務の中のどこに組み込むか」の設計です。BoostXの業務自動化サービスは、業務ヒアリングから設計・定着支援までをサービス対応範囲としてカバーできる領域です。
データの自動入力・転記
Googleフォームで受け付けた回答データを、別のスプレッドシートに自動転記できます。たとえば、問い合わせフォームの内容を、管理用シートにリアルタイムで反映させるといった使い方です。手動でのコピー&ペーストが不要になります。
定期的なレポート作成
毎週や毎月のタイミングで、スプレッドシート内のデータを集計してレポートシートに出力できます。売上データの月次サマリーや、タスク管理シートの進捗集計など、繰り返しの集計作業を自動化できます。
メール通知の自動送信
スプレッドシートの特定セルに値が入力されたとき、あるいは特定の条件を満たしたときに、Gmailで通知メールを自動送信できます。在庫数が一定以下になったら担当者にメールする、期限が近づいたタスクをリマインドする、といった処理が数行のコードで書けます。
請求書・見積書のPDF生成
スプレッドシートのテンプレートにデータを差し込み、PDFとして出力する処理もGASで実現できます。1件ずつ手作業でPDFを作っていた業務を、ボタン一つで一括生成に切り替えられます。
| 自動化の対象 | 手動でかかる時間(目安) | GAS導入後 |
|---|---|---|
| フォーム回答の転記 | 1件あたり3〜5分 | 即時自動反映 |
| 月次レポート集計 | 30分〜1時間 | ワンクリックで完了 |
| リマインドメール送信 | 対象確認+送信で15分 | 条件一致で自動送信 |
| 請求書PDF作成 | 1件あたり10〜15分 | 一括自動生成 |
GASを始める前に確認しておくこと
GASを始めるために必要なものは、実はほとんどありません。ただし、事前に確認しておくとスムーズに進められるポイントがいくつかあります。
必要な環境
GASを使うために必要なのは、Googleアカウントとウェブブラウザだけです。Google Chromeを推奨しますが、Edgeやfirefoxでも動作します。PCのスペックも特に気にする必要はありません。
注意点として、会社のGoogle Workspaceアカウントを使っている場合、管理者がGASの利用を制限していることがあります。スクリプトエディタが開けない場合は、IT管理者に確認してください。個人のGoogleアカウントであれば、この制限はありません。
プログラミング経験は必要か
結論から言えば、不要です。GASはJavaScriptベースですが、最初のスクリプトを動かすだけであれば、コードの意味を一行ずつ理解しなくても大丈夫です。テンプレートのコードをコピーして、変更したい部分だけ書き換える。その繰り返しで、少しずつコードの読み書きに慣れていけます。
スプレッドシートのSUM関数やIF関数を使ったことがあれば、GASの「セルの値を取得して、条件分岐して、別のセルに書き込む」という流れは、関数の延長として捉えられます。
スプレッドシートからスクリプトエディタを開く手順
ここからは、実際にスプレッドシートを開いて、スクリプトエディタにアクセスするところまでを手順で説明します。
手順1:スプレッドシートを新規作成する
Googleドライブ(drive.google.com)を開き、「新規」ボタンから「Googleスプレッドシート」を選択します。既存のスプレッドシートを使いたい場合は、そのファイルを開いてください。
練習用に新しいファイルを作っておくと、既存のデータを壊す心配がありません。ファイル名は「GAS練習用」など、わかりやすい名前にしておきましょう。
手順2:スクリプトエディタを開く
スプレッドシートの上部メニューから「拡張機能」をクリックし、表示されたメニューの中から「Apps Script」を選択します。
新しいタブでApps Scriptのエディタ画面が開きます。初期状態では、以下のようなコードがあらかじめ表示されています。
function myFunction() {
}
この「myFunction」という空の関数が、スクリプトのスタート地点です。このエディタ画面で、コードを書き、実行し、結果を確認します。
手順3:プロジェクト名を変更する
エディタ画面の左上に「無題のプロジェクト」と表示されています。ここをクリックして、「GAS練習」のような名前に変更しておきます。プロジェクトが増えてきたときに区別しやすくなります。
最初のスクリプトを書いて実行する
スクリプトエディタが開けたら、いよいよ最初のコードを書いて動かします。ここでは2つのスクリプトを順番に試します。
スクリプト1:メッセージを表示する
まずは、スプレッドシート上にポップアップメッセージを表示する、もっともシンプルなスクリプトです。エディタに表示されている「myFunction」の中身を、次のように書き換えてください。
function myFunction() {
Browser.msgBox('GASが動きました');
}
書き換えたら、エディタ上部の「実行」ボタン(三角形のアイコン)をクリックします。
初回の実行時には、「承認が必要です」というダイアログが表示されます。これは、GASがスプレッドシートにアクセスする権限を求めているものです。「権限を確認」をクリックし、自分のGoogleアカウントを選択して、「許可」を押してください。
承認が完了すると、スプレッドシートのタブに切り替わり、「GASが動きました」というメッセージが表示されます。これで、最初のスクリプトの実行は完了です。
スクリプト2:セルに値を書き込む
次に、スプレッドシートのセルにデータを書き込むスクリプトを試します。先ほどのコードを、以下の内容に書き換えてください。
function writeToCell() {
var sheet = SpreadsheetApp.getActiveSheet();
sheet.getRange('A1').setValue('GASで入力しました');
sheet.getRange('B1').setValue(new Date());
sheet.getRange('C1').setValue(100);
}
エディタ上部の関数選択ドロップダウンで「writeToCell」が選ばれていることを確認し、「実行」をクリックします。スプレッドシートに戻ると、A1セルに「GASで入力しました」、B1セルに現在の日時、C1セルに「100」が入力されているはずです。
たった5行のコードで、3つのセルにそれぞれ異なる種類のデータ(文字列、日付、数値)を書き込めました。この「セルを指定して、値を入れる」という操作が、GASによるスプレッドシート操作の基本中の基本です。
スクリプトの中身を理解する ― 基本構文の読み方
先ほど書いたスクリプトの各行が何をしているのか、一つずつ見ていきます。コードの「読み方」を覚えることで、自分でカスタマイズできるようになります。
関数の定義
function writeToCell() {
// この中に処理を書く
}
「function」は「処理のかたまり」を定義するキーワードです。「writeToCell」は関数の名前で、自由に付けられます。英数字とアンダースコアが使えます。波括弧 { } で囲まれた範囲が、実行される処理です。
スプレッドシートの取得
var sheet = SpreadsheetApp.getActiveSheet();
「SpreadsheetApp」は、スプレッドシートを操作するためのGAS専用のオブジェクトです。「getActiveSheet()」で、現在開いているシート(アクティブなシート)を取得します。取得したシートを「sheet」という変数に格納しています。
セルへの書き込み
sheet.getRange('A1').setValue('GASで入力しました');
「getRange(‘A1’)」で、A1セルを指定します。範囲指定の場合は「getRange(‘A1:C5’)」のように書きます。「setValue()」で、指定したセルに値を書き込みます。文字列はシングルクォーテーション、またはダブルクォーテーションで囲みます。
| メソッド | 役割 | 使用例 |
|---|---|---|
| getActiveSheet() | 現在のシートを取得 | SpreadsheetApp.getActiveSheet() |
| getRange() | セルまたは範囲を指定 | sheet.getRange(‘A1’) |
| getValue() | セルの値を取得 | sheet.getRange(‘A1’).getValue() |
| setValue() | セルに値を書き込む | sheet.getRange(‘A1’).setValue(‘テスト’) |
| getLastRow() | データがある最終行を取得 | sheet.getLastRow() |
この5つのメソッドを組み合わせるだけでも、「データを読み取って別のセルに転記する」「最終行の下に新しいデータを追加する」といった処理が書けます。
トリガーを使ってスクリプトを自動実行する
スクリプトを手動で実行するだけなら、ボタンを押すたびにエディタを開く必要があります。しかし、GASには「トリガー」という機能があり、特定のタイミングでスクリプトを自動実行できます。
トリガーの種類
GASで設定できるトリガーは、大きく分けて2種類あります。
「時間ベースのトリガー」は、毎日、毎時間、毎週など、時間の経過をきっかけにスクリプトを実行します。「毎朝9時にレポートを集計する」「1時間ごとに在庫データを更新する」といった定期的な処理に向いています。
「イベントベースのトリガー」は、スプレッドシート上の操作をきっかけにスクリプトを実行します。「シートが編集されたとき」「フォームから回答が送信されたとき」「スプレッドシートを開いたとき」などが該当します。
トリガーの設定手順
スクリプトエディタの左側メニューから、時計アイコンの「トリガー」を選択します。「トリガーを追加」ボタンをクリックすると、設定画面が開きます。
設定画面では、以下の項目を指定します。
- 実行する関数:実行したい関数名を選択します
- イベントのソース:「時間主導型」か「スプレッドシートから」を選択します
- イベントの種類:時間主導型の場合は「日タイマー」「時間タイマー」等、スプレッドシートの場合は「編集時」「変更時」等を選択します
- 時刻:日タイマーの場合、実行する時間帯を指定します(例:午前9時〜10時)
設定が完了したら「保存」をクリックします。これで、指定したタイミングに自動でスクリプトが実行されるようになります。
GAS初心者がつまずきやすい5つのポイントと対処法
GASを始めたばかりの段階で多くの方がぶつかる壁があります。あらかじめ知っておくことで、無駄な時間を使わずに済みます。
1. 承認画面が表示されて先に進めない
初回実行時に表示される承認画面で戸惑うケースです。特に「このアプリは確認されていません」という警告が出ると、不安になって中断してしまう方がいます。自分のアカウントで作成したスクリプトであれば、「詳細」から進めて問題ありません。
2. 関数名のスペルミス
「SpreadsheetApp」の「S」が小文字になっている、「getRange」を「getrange」と書いている、といったケースです。GASは大文字・小文字を区別します。エラーメッセージに「is not defined」と出たら、まずスペルを確認してください。
3. セル番地の指定ミス
getRange()に渡すセル番地を間違えるケースです。よくあるのは、行と列の順番を逆にしてしまうことです。getRangeには2つの書き方があります。「getRange(‘A1’)」のようにA1形式で指定する方法と、「getRange(1, 1)」のように行番号・列番号で指定する方法です。後者の場合、第1引数が行、第2引数が列の順番です。
4. スクリプトが反映されない
コードを書き換えたのに、実行しても結果が変わらないケースです。多くの場合、保存を忘れています。GASのエディタでは、Ctrl+S(Macの場合はCommand+S)で保存するか、ファイルメニューから「保存」を選択してください。保存せずに実行すると、前回保存したバージョンのコードが動きます。
5. 実行時間の制限に引っかかる
GASには1回のスクリプト実行に6分という時間制限があります。大量のデータを処理しようとすると、この制限に達してスクリプトが途中で停止します。対処法としては、処理するデータの範囲を分割するか、getValues()で一括取得して配列内で処理するバッチ方式に変更する方法があります。
| つまずくポイント | 原因 | 対処法 |
|---|---|---|
| 承認画面で止まる | 初回実行時のOAuth認証 | 「詳細」から進めて許可する |
| 「is not defined」エラー | スペルミスまたは大文字小文字の間違い | オブジェクト名・メソッド名の綴りを確認 |
| 意図しないセルに書き込まれる | getRange()の引数ミス | A1形式での指定に統一する |
| 変更が反映されない | 保存忘れ | Ctrl+Sで保存してから実行 |
| 「Exceeded maximum execution time」 | 6分の実行制限 | 一括取得+配列処理に変更 |
次のステップ ― GASの学習を続けるために
最初のスクリプトが動いたら、そこから先は「自分の業務に合ったスクリプト」を作ることが最短の上達法です。教科書を読み込むよりも、実際の業務課題をGASで解決する方が、はるかに速くスキルが身につきます。
段階的な学習ロードマップ
GASの習得は、以下のステップで進めると無理なくスキルアップできます。
最初のステップは、セルの読み書きです。getValue()とsetValue()を使って、セルからデータを取得し、別のセルに書き込む処理を繰り返し練習します。この記事で紹介した内容がこのステップにあたります。
次のステップは、条件分岐とループです。if文で条件に応じた処理を分け、for文で複数行のデータを順番に処理する方法を覚えます。「A列の値が空欄でない行だけ、B列に日付を入れる」といった処理が書けるようになります。
その次は、複数シート・複数ファイルの操作です。getSheetByName()で名前を指定してシートを切り替えたり、SpreadsheetApp.openById()で別のスプレッドシートを操作したりする方法を学びます。
さらに進むと、外部サービスとの連携が見えてきます。UrlFetchApp.fetch()を使って外部APIからデータを取得したり、GmailApp.sendEmail()でメールを送信したりと、GASの活用範囲が一気に広がります。
学習に役立つリソース
GASの公式ドキュメントは英語ですが、各メソッドの引数や戻り値が正確に記載されています。日本語の情報としては、Googleの公式ラーニングセンターや、GAS専門の技術ブログが参考になります。
実務で使えるスクリプトのテンプレートを探す場合は、Googleの「Apps Scriptサンプル」ページが出発点になります。やりたい処理に近いサンプルを見つけて、自分のスプレッドシートに合わせてカスタマイズする方法がおすすめです。
自力での開発が難しい場合
GASの基本は独学でも習得できますが、業務フロー全体を自動化するような規模になると、専門知識が必要になる場面も出てきます。たとえば、複数のGoogleサービスを横断する処理、エラーハンドリング、大量データの効率的な処理などは、設計段階から経験者の知見が役立ちます。
自社の業務に合わせたGAS開発を検討している場合は、要件整理から実装・保守まで対応できる専門家に相談するのも選択肢の一つです。初期の設計をしっかり行うことで、後からの修正コストを大幅に抑えられます。
よくある質問
QGASは無料で使えますか?
Aはい、Googleアカウントがあれば無料で使えます。Google Workspace(有料版)を利用している場合は、スクリプトの実行時間上限が拡張されるなどの追加機能がありますが、基本的な機能は無料アカウントでも同じです。
QGASでExcelファイルは操作できますか?
A直接Excelファイル(.xlsx)を操作することはできません。ただし、GoogleドライブにアップロードしたExcelファイルをスプレッドシート形式に変換すれば、GASで操作できるようになります。変換はDrive.Files.copyメソッドやGoogleドライブの画面上で行えます。
QスマートフォンからGASを使えますか?
Aスクリプトの編集や実行は、PC版のブラウザから行う必要があります。スマートフォンのGoogleスプレッドシートアプリでは、スクリプトエディタを開くことができません。ただし、GASで作成したカスタムメニューやボタンは、スマートフォンからは利用できない点に注意が必要です。
Q他の人とスクリプトを共有できますか?
Aスプレッドシートに紐づいたスクリプト(コンテナバインドスクリプト)は、スプレッドシートの共有設定に従います。スプレッドシートを編集権限で共有すれば、相手もスクリプトエディタを開いてコードを編集できます。閲覧権限のみの場合は、スクリプトの実行はできますが、コードの編集はできません。
QGASで作ったスクリプトが動かなくなることはありますか?
AGoogleがAPI仕様を変更した場合、既存のスクリプトに影響が出ることがあります。過去には、2020年にGASのランタイムがV8エンジンに移行した際、一部の古い書き方が動かなくなるケースがありました。ただし、基本的なSpreadsheetAppのメソッドは長期間安定しており、頻繁に動かなくなることは稀です。
業務自動化で手が止まっているなら
最初の一歩の順番を、一緒に整理するところから始められます
GASやAPI連携で業務を楽にしたい、でも「どの業務から自動化すべきか」の判断が難しい——ここで手が止まってしまうケースがあります。先にツールを触るより、自動化する順番を整理しておくほうが、結果的に早く楽になります。BoostXの業務自動化サービスは、この順番づくりから、設計、運用の定着まで並走する内容です。どこから始めるべきか、まずは無料相談でご相談ください。
まとめ
- GASはGoogleアカウントがあれば無料で始められるクラウド型スクリプト環境
- スプレッドシートの「拡張機能」メニューからスクリプトエディタを開くだけで準備完了
- getValue()とsetValue()の2つのメソッドが、セル操作の基本
- トリガー機能を使えば、手動実行なしで定期的にスクリプトを自動実行できる
- 初回の承認画面やスペルミスなど、初心者がつまずきやすいポイントは事前に把握しておく
- 実際の業務課題をGASで解決する実践型の学習が、最短の上達法
※本記事の情報は2026年4月時点のものです。