GASでスプレッドシートをデータベース化する方法 CRUD操作・活用例・注意点を解説
2026年9月14日
著者:NEXT SCALE編集部
監修者:石丸真平

「Googleスプレッドシートをデータベースのように使いたいが、GASの書き方がわからない」「簡易的なデータベースを無料で構築したい」。小規模なデータ管理や業務ツールの構築において、GAS(Google Apps Script)とスプレッドシートの組み合わせに注目する方が増えています。
GASとは、Googleが提供するJavaScriptベースのスクリプト言語で、Googleスプレッドシートをはじめとする各種Googleサービスと連携して動作します。スプレッドシートをデータの保存先(データベース)として使い、GASでデータの読み書き・検索・更新・削除(CRUD操作)を行うことで、簡易的なデータベースシステムを無料で構築できます。
この記事では、GASでスプレッドシートをデータベースとして活用する方法、CRUD操作の基本コード、実務で使える活用例、そしてスプレッドシートをデータベースとして使う際の注意点と限界まで、初心者にもわかりやすく解説します。
| 確認したいポイント | 結論 | 詳細 |
| GASでデータベースは作れるか? | スプレッドシートをDB化できる | スプレッドシートをデータの保存先にして、GASでCRUD操作を行う簡易データベースを無料で構築できます |
| どんな操作ができるか? | データのCRUD操作が可能 | データの作成(Create)・読み取り(Read)・更新(Update)・削除(Delete)をGASのコードで実行できます |
| 費用はかかるか? | Googleアカウントがあれば無料 | GASとスプレッドシートはGoogleアカウントさえあれば無料で利用できます |
| どのくらいの規模まで対応できるか? | 数千行〜1万行程度が目安 | 数万行を超えるとパフォーマンスが低下します。大規模データにはCloud SQLなどの外部DBを検討しましょう |
この記事でわかること
・GASとスプレッドシートでデータベースを構築するメリット
・スプレッドシートのDB設計とGASの基本操作
・CRUD操作のコード例(作成・読取・更新・削除)
・実務で使える活用例5選
・スプレッドシートDBの注意点と限界
| \ 業務自動化・DX推進のご相談はネクストスケールへ / ▶ 相談予約はこちら |
GAS×スプレッドシートでデータベースを作るメリット
専用のデータベースサーバーを使わず、スプレッドシートをデータベースとして活用するメリットを整理します。
GASとスプレッドシートの基本
GAS(Google Apps Script)は、Googleが提供するクラウドベースのスクリプト環境です。JavaScriptをベースにしており、Googleスプレッドシート、Gmail、Googleドライブ、Googleカレンダーなどの各種Googleサービスと連携して動作します。
スプレッドシートをデータベースとして使う場合、スプレッドシートのシートがテーブル、1行目の各列がカラム名、2行目以降の各行がレコードに相当します。GASからSpreadsheetAppクラスを使ってデータの読み書きを行うことで、簡易的なデータベース操作が可能になります。
スプレッドシートDBの5つのメリット
1. 無料で使える:Googleアカウントさえあれば、GASもスプレッドシートも無料で利用できます。サーバー費用やライセンス費用が一切かかりません。
2. 環境構築が不要:ブラウザだけで開発・実行が完結します。データベースサーバーのセットアップやミドルウェアのインストールが不要です。
3. データの可視性が高い:スプレッドシート上でデータを直接確認・編集できるため、エンジニア以外のメンバーもデータの内容を把握しやすいです。
4. Googleサービスとの連携が容易:Gmail、Googleフォーム、Googleカレンダー、Googleドライブとの連携がGASの数行のコードで実現できます。
5. WebアプリやAPIとしても公開可能:GASのウェブアプリ機能を使えば、スプレッドシートのデータをWebアプリケーションのバックエンドとして利用したり、外部からAPIとしてアクセスしたりすることも可能です。
スプレッドシートのデータベース設計と基本操作
スプレッドシートをデータベースとして使うためには、データの構造と基本操作を理解しておく必要があります。
データベース用スプレッドシートの設計ルール
スプレッドシートをデータベースとして活用するためには、以下の設計ルールを守ることが重要です。
1行目はヘッダー行(カラム名)として使用し、ID・名前・メール・登録日時などの列名を記載します。2行目以降にデータを1行1レコードで記録します。各列のデータ型(テキスト・数値・日付)を統一し、空行を作らないようにします。
また、1列目にIDやレコード番号を設けておくと、GASからの検索・更新・削除の際にキーとして使えるため、操作が効率的になります。
GASからスプレッドシートにアクセスする基本コード
GASからスプレッドシートにアクセスするには、SpreadsheetAppクラスを使用します。基本的なアクセスコードは以下のとおりです。
// スプレッドシートとシートの取得
const ss = SpreadsheetApp.getActiveSpreadsheet();
const sheet = ss.getSheetByName(‘データ’);
// 全データの取得
const data = sheet.getDataRange().getValues();
const headers = data[0]; // 1行目がヘッダー
const records = data.slice(1); // 2行目以降がデータ
getActiveSpreadsheetでスプレッドシートを取得し、getSheetByNameでシート名を指定してシートオブジェクトを取得します。getDataRangeはデータが存在する範囲を自動検出し、getValuesで2次元配列としてデータを取得します。
GASの公式リファレンスは、Googleの開発者向けドキュメントで確認できます(参考:Google Apps Script リファレンス)。
| \ 業務自動化・DX推進のご相談はネクストスケールへ / ▶ 資料請求はこちら |
CRUD操作のコード例
データベースの基本操作であるCRUD(Create・Read・Update・Delete)をGASで実装する方法を、コード例とともに解説します。
Create(データの追加)
新しいレコードをスプレッドシートの最終行に追加する処理です。appendRowメソッドを使います。
function addRecord(name, email) {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(‘データ’);
const id = sheet.getLastRow();
sheet.appendRow([id, name, email, new Date()]);
}
appendRowは配列をシートの最終行の次の行に追加します。IDはgetLastRowで現在の最終行番号を取得して連番として使用しています。
Read(データの読み取り・検索)
指定した条件でデータを検索し、該当するレコードを返す処理です。
function findByEmail(email) {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(‘データ’);
const data = sheet.getDataRange().getValues();
const headers = data[0];
const emailCol = headers.indexOf(‘メール’);
for (let i = 1; i < data.length; i++) {
if (data[i][emailCol] === email) return data[i];
}
return null;
}
ヘッダー行からカラム名のインデックスを取得し、forループで全行を走査して条件に一致するレコードを返します。
Update(データの更新)
指定したIDのレコードを更新する処理です。
function updateRecord(targetId, newName) {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(‘データ’);
const data = sheet.getDataRange().getValues();
for (let i = 1; i < data.length; i++) {
if (data[i][0] === targetId) {
sheet.getRange(i + 1, 2).setValue(newName);
return;
}
}
}
IDで行を特定し、getRangeとsetValueで該当セルの値を更新します。行番号は配列のインデックス(0始まり)+1でスプレッドシートの行番号(1始まり)に変換します。
Delete(データの削除)
指定したIDのレコード行を削除する処理です。
function deleteRecord(targetId) {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(‘データ’);
const data = sheet.getDataRange().getValues();
for (let i = data.length – 1; i >= 1; i–) {
if (data[i][0] === targetId) {
sheet.deleteRow(i + 1);
return;
}
}
}
deleteRowで行を削除します。削除時はforループを逆順(最終行から先頭方向)に回すことで、行番号のズレによるバグを防ぎます。
GAS×スプレッドシートDBの活用例5選
GASとスプレッドシートの組み合わせは、さまざまな業務シーンで活用できます。代表的な活用例を5つ紹介します。
活用例1:Googleフォーム連携の問い合わせ管理
Googleフォームからの問い合わせデータをスプレッドシートに自動蓄積し、GASで対応状況のステータス管理や自動返信メールの送信を行います。フォームの回答が記録されるたびにGASのトリガーが起動し、担当者への通知や顧客への自動返信を実行できます。
活用例2:簡易CRM(顧客管理)
顧客情報(会社名、担当者、連絡先、対応履歴)をスプレッドシートに一元管理し、GASで検索・フィルタリング機能を実装します。GASのウェブアプリ機能を使えば、ブラウザから操作できる簡易的なCRM画面も構築可能です。
活用例3:在庫管理・備品管理
在庫データや備品リストをスプレッドシートに記録し、GASで入出庫登録・在庫数の自動計算・発注点アラートを実装します。Googleフォームと連携させれば、現場からスマートフォンで入出庫データを入力する仕組みも作れます。
活用例4:WebアプリのバックエンドDB
GASのウェブアプリ機能(doGet/doPost)を使って、スプレッドシートをWebアプリケーションのバックエンドデータベースとして利用できます。HTMLとJavaScriptでフロントエンドを作り、GASのAPIを呼び出してデータの読み書きを行う構成です。小規模な社内ツールやプロトタイプの開発に適しています。
活用例5:外部API連携によるデータ収集・蓄積
GASのUrlFetchAppを使って外部APIからデータを定期的に取得し、スプレッドシートに蓄積する仕組みを構築できます。為替レート、天気情報、SNSのフォロワー数などを定期的に取得して記録し、時系列でのデータ分析に活用できます。
業務効率化のアイデアをより幅広く検討したい方は、業務効率化アイデア55選の記事もあわせてご確認ください。
| \ 業務自動化・DX推進のご相談はネクストスケールへ / ▶ 相談予約はこちら |
GAS×スプレッドシートDBの注意点と限界
スプレッドシートをデータベースとして使う方法は手軽ですが、制約と限界も理解しておく必要があります。
注意点1:データ量の増加でパフォーマンスが低下する
スプレッドシートの行数が数万行を超えると、GASの処理速度が大幅に低下します。getValuesで全データを取得する処理や、forループでの全行走査が遅くなるため、実用的な上限は数千行〜1万行程度と考えておきましょう。
パフォーマンスを改善するには、データをシートで分割する、不要な列を読み込まないようにgetRangeで範囲を限定する、バッチ処理でAPIの呼び出し回数を減らすといった対策が有効です。
注意点2:GASの実行時間に制限がある
GASには1回の実行につき6分という実行時間の上限があります。大量データの処理やAPI連携で時間がかかる場合は、処理を分割してトリガーで順次実行する設計が必要です。
注意点3:同時編集時のデータ競合に注意
複数のユーザーやトリガーが同時にスプレッドシートに書き込むと、データの上書きや行のズレが発生する可能性があります。LockServiceクラスを使って排他制御を実装するか、同時書き込みが発生しにくい設計にすることで対処します。
注意点4:セキュリティとアクセス権限の管理
スプレッドシートのデータは、共有設定を誤ると意図しない相手にデータが閲覧されるリスクがあります。個人情報や機密データを扱う場合は、スプレッドシートの共有設定を「特定のユーザーのみ」に制限し、GASのウェブアプリ公開時のアクセス権限にも注意してください。
注意点5:規模が拡大したら外部データベースへの移行を検討する
データ量が増加し、同時アクセスが増え、リレーショナルなデータ構造が必要になった場合は、Cloud SQL(MySQL/PostgreSQL)やFirestoreなどの外部データベースへの移行を検討しましょう。GASはJDBC接続でCloud SQLと連携できるため、移行後もGASのコード資産を活かすことが可能です。
システム開発の外注やAI活用については、システム開発の外注とはの記事や、ネクストスケールのAIコンサル・AX伴走支援のサービスもご活用ください。
| \ 業務自動化・DX推進のご相談はネクストスケールへ / ▶ 資料請求はこちら |
まとめ
GAS(Google Apps Script)とGoogleスプレッドシートを組み合わせれば、無料で簡易的なデータベースを構築できます。データの作成・読み取り・更新・削除(CRUD操作)をGASのコードで実装し、Googleフォームやメールなどの他のGoogleサービスと連携させることで、問い合わせ管理、顧客管理、在庫管理、Webアプリのバックエンドなど、さまざまな業務ツールを構築可能です。
ただし、スプレッドシートをデータベースとして使う場合の実用的な上限は数千行〜1万行程度であり、GASの実行時間制限や同時編集時のデータ競合にも注意が必要です。規模が拡大した場合は、外部データベース(Cloud SQL、Firestoreなど)への移行を検討しましょう。
まずは1つのシートにデータを記録し、GASで読み取るところから始めて、段階的にCRUD操作や外部連携を追加していくアプローチがおすすめです。
AIコンサル・AX伴走支援サービスご紹介資料
この資料でこんなことがわかります!
- 社外AI役員とは
- 支援内容
- 導入の進め方
- 導入実績・効果
\3ステップで簡単入力/
この記事の監修者
株式会社ネクストスケール 代表取締役




