「データベースって難しそう...」そんなあなたに朗報です

実は、たった20分の設定で、Googleスプレッドシートがあなたのデータベースになります。

「お問い合わせフォームを作りたいけど、MySQLとかPostgreSQLとか、よく分からない...」「サーバーの設定とか、もう頭がパンクしそう...」

そんな悩み、今日で終わりです。

この記事を読めば、プログラミング初心者でも、お問い合わせフォームから送信されたデータを、Googleスプレッドシートに自動保存できるようにするための初期設定が完了します。しかも、スプレッドシートは非公開のまま、セキュアに運用できます。

所要時間: 約20分 難易度: ★★☆☆☆ (初心者OK!)


そもそも、なぜGoogleスプレッドシートを使うの?

従来のデータベースとの衝撃的な違い

項目従来のDB (MySQL等)Googleスプレッドシート
初期設定複雑 (サーバー構築必要)簡単 (Googleアカウントだけ)
コストサーバー代がかかる無料
データ確認SQL文を書く必要ありExcelのように直感的
学習コスト高い (挫折率80%超)低い (誰でもできる)
初回起動までの時間数日〜数週間20分

つまり、小規模なWebサービスやプロトタイプ作成には、スプレッドシートが圧倒的に有利なんです!

実際、シリコンバレーのスタートアップも、初期段階ではスプレッドシートをデータベース代わりに使うことが多いんですよ。


この記事の全体像【重要】

まず、今からあなたが行う5つのステップを確認しましょう:

  1. Google Cloudプロジェクトを作成する (5分)
  2. Google Sheets APIを有効化する (3分)
  3. サービスアカウントを作成する (7分)
  4. 認証キー(JSON)をダウンロードする (3分)
  5. スプレッドシートに権限を付与する (2分)

合計: 約20分

「なんだか難しそう...」と思いましたか? 大丈夫です。一つ一つ、解説していきます。


「サービスアカウント」って何? ここで躓く人が90%

いきなり「サービスアカウント」という言葉が出てきて、混乱していませんか?

実は、ここを理解しないと、後で絶対に躓きます。

サービスアカウント = ロボット用のGoogleアカウント

簡単に言うと、「あなたの代わりに作業をしてくれるロボット専用のGoogleアカウント」です。

普段あなたが使っているGoogleアカウント(例: yamada.taro@gmail.com)は、人間が使うアカウントですよね。

一方、サービスアカウントは:

  • プログラムが使うための専用アカウント
  • 人間がログインすることはできない
  • 特定の作業だけを自動で行う

【具体例】お問い合わせフォームの裏側で何が起きているか

例えば、お問い合わせフォームの場合、こんな流れになります:

  1. ユーザーがフォームに「名前: 山田太郎」「メール: yamada@example.com」「問い合わせ内容: 料金について知りたいです」を入力
  2. 送信ボタンをクリック
  3. サービスアカウント(ロボット)が、あなたのスプレッドシートにアクセス
  4. 自動的にデータを追加
  5. 完了!

あなたのGoogleアカウントのパスワードを使わずに、安全にデータを保存できるんです。

なぜサービスアカウントが必要なの?

「え、自分のGoogleアカウントじゃダメなの?」と思いましたよね。

ダメなんです。理由は2つ:

  1. セキュリティリスク: あなたのパスワードをプログラムに書き込むのは超危険
  2. 権限の問題: 人間用のアカウントは、プログラムからのアクセスを想定していない

だから、「スプレッドシートの読み書き専用」のロボット(=サービスアカウント)を作って、そのロボットに作業をさせるわけです。

ここまで理解できましたか? できていなくても大丈夫です。実際に手を動かしながら、徐々に理解していきましょう。


ステップ1: Google Cloudプロジェクトを作成する

Google Cloudって何?

「Google Cloud」は、Googleが提供するクラウドサービスのプラットフォームです。

「クラウドサービス」って何? という方も多いと思います。

超簡単に言うと、「インターネット上でいろいろなことができるサービス」です。

今回は、その中の「Google Sheets API」という機能を使います。

【実践】プロジェクトを作成しよう

では、実際に手を動かしましょう!

手順1: Google Cloud Consoleにアクセス

  1. ブラウザで https://console.cloud.google.com/ を開きます
  2. Googleアカウントでログインしてください

初めてアクセスする方へ: 利用規約の同意画面が出ますが、問題なければ同意してOKです。

手順2: 新しいプロジェクトを作成

  1. 画面上部の「プロジェクト選択」(またはプロジェクト名の部分)をクリック
  2. ポップアップが開くので、「新しいプロジェクト」ボタンをクリック
  3. プロジェクト名を入力 (例: my-contact-form または お問い合わせフォーム)
  4. 「作成」ボタンをクリック

ポイント: プロジェクト名は後から変更できないので、分かりやすい名前にしましょう!

所要時間: 約5分


ステップ2: Google Sheets APIを有効化する

APIって何? 秒速で理解する

「API」という言葉、よく聞きますよね。でも、初心者にとっては謎の言葉です。

API = Application Programming Interface

難しそうですが、実は超シンプル。

API = 「プログラム同士が会話するための窓口」

例えば、こんな感じです:

  • あなたのWebサービス (Next.js): 「ねぇGoogle、スプレッドシートにデータを追加して!」
  • Google Sheets API: 「了解! 今すぐやるね!」

つまり、APIを有効化しないと、プログラムがスプレッドシートと会話できないんです。

【実践】APIを有効化しよう

手順1: 左側のメニューから「APIとサービス」を選択

見つからない場合は、左上の「≡」(ハンバーガーメニュー)から探してください。

手順2: 「APIを有効化」 をクリック

手順3: 検索バーに「Google Sheets API」と入力

検索結果から「Google Sheets API」をクリック

手順4: 「有効にする」ボタンをクリック

製品の詳細ページに遷移するので、有効にするボタンをクリックする

おめでとうございます! これで、あなたのプロジェクトでGoogle Sheets APIが使えるようになりました!

所要時間: 約3分


ステップ3: サービスアカウントを作成する

ここが最も重要なパートです! 集中してください。

【実践】サービスアカウント(ロボット)を作ろう

手順1: 「APIとサービス」 > 「認証情報」へ移動

ステップ2のGoogle Sheets APIのページで有効化した後なら、そのページ上部に認証情報の作成ボタンがあるのでそれをクリック。

手順2: 「認証情報を作成」をクリック

手順3: 使用するAPIで「Google Sheets API」を選択

デフォルトでGoogle Sheets APIが選択されていますが、選ばれていない場合は 「Google Sheets API」を選んでください

手順4: 「アクセスするデータの種類」でアプリケーションデータを選択なぜ「アプリケーションデータ」なのか?「ユーザーデータ」: アプリの利用者が自分のGoogleアカウントでログインして、その人のデータにアクセスする場合に使います(OAuth認証)。

「アプリケーションデータ」: サーバー(Next.jsのビルド環境など)が自動でデータを取りに行く場合に使います。これを選択することで、**「サービスアカウント」**が作成されます。

  • サービスアカウント名: spreadsheet-reader (分かりやすい名前でOK)
  • サービスアカウントID: 自動で生成されます (触らなくてOK)
  • 説明: 「お問い合わせフォームのデータ保存用」など (任意)

手順5: 「作成して続行」をクリック

手順6: ロール(役割)の選択画面が表示される

ここは何も選ばずに「完了」をクリックしてOKです

なぜ? スプレッドシート側で個別に権限を設定するため、ここでは不要だからです。

おめでとうございます! サービスアカウント(ロボット)が誕生しました!

所要時間: 約7分


ステップ4: 認証キー(JSON)をダウンロードする

認証キー = ロボットの「身分証明書」

サービスアカウント(ロボット)が作業するには、「鍵」が必要です。

この鍵は、JSON形式のファイルとして提供されます。

JSON (ジェイソン) というのは、データを保存する形式の一つです。難しく考えず、**「ロボットの身分証明書みたいなもの」**だと思ってください。

【実践】JSONファイルをダウンロードしよう

手順1: 作成されたサービスアカウントをクリック

Google Sheets APIのAPI / サービスの詳細ページの中程にある「認証情報」タブを選択し、サービスメールアカウントのURLをクリック

手順2: 「鍵」タブをクリック

画面上部にあります。

手順3: 「鍵を追加」 > 「新しい鍵を作成」をクリック

手順4: 「JSON」を選択

「P12」という選択肢もありますが、「JSON」を必ず選んでください

手順5: 「作成」ボタンをクリック

自動的にJSONファイルがダウンロードされます。

⚠️ 超重要: このJSONファイルは、絶対に他人に見せないでください! パスワードと同じくらい、いや、それ以上に大切なファイルです。

ダウンロードしたJSONファイルの中身【知っておくべきこと】

ファイルを開くと、こんな内容が書かれています:

{
  "type": "service_account",
  "project_id": "my-contact-form",
  "private_key_id": "abc123...",
  "private_key": "-----BEGIN PRIVATE KEY-----\nMIIE...",
  "client_email": "spreadsheet-reader@my-contact-form.iam.gserviceaccount.com",
  "client_id": "123456789",
  ...
}

特に重要なのは:

  • client_email: サービスアカウントのメールアドレス (ロボットのID)
  • private_key: 認証用の秘密鍵 (ロボットのパスワード)

この2つを、後でNext.jsのプロジェクトで使います。

所要時間: 約3分


ステップ5: スプレッドシートに権限を付与する【ラスト!】

最後のステップです! もうすぐ完成です!

なぜこの作業が必要?

サービスアカウント(ロボット)を作っただけでは、まだスプレッドシートにアクセスできません。

スプレッドシート側で、「このロボットに作業を許可する」という設定が必要なんです。

例えるなら、ロボットを作っても、あなたの家の鍵を渡さないと、家の中に入れないのと同じです。

【実践】ロボットに鍵を渡そう

手順1: Googleスプレッドシートを開く

データを保存したいスプレッドシートを開きます。

まだ作っていない場合: 新規作成してください。

手順2: 「共有」ボタンをクリック

画面右上にあります。

手順3: サービスアカウントのメールアドレスを入力

先ほどダウンロードしたJSONファイルの中にある client_email をコピペ

例: spreadsheet-reader@my-contact-form.iam.gserviceaccount.com

注意: 必ず全部コピーしてください。一文字でも間違えると動きません。

手順4: 権限を選択

  • 「閲覧者」: データを読むだけ
  • 「編集者」: データの読み書きが可能

お問い合わせフォームの場合は「編集者」を選びましょう 読み込むだけで良いなら、観覧者を選択

手順5: 「送信」をクリック

「このユーザーに通知しますか?」と聞かれますが、チェックを外してOK (サービスアカウントはロボットなので、メールを受け取れません)

🎉 完了! これで、サービスアカウント(ロボット)があなたのスプレッドシートにアクセスできるようになりました!

所要時間: 約2分


よくある質問 (FAQ)

Q1: サービスアカウントは無料ですか?

A: はい、完全無料です。Google Cloudの無料枠で十分使えます。課金される心配はありません。

Q2: スプレッドシートは非公開のままでいいですか?

A: はい! 公開する必要は一切ありません。サービスアカウントだけに権限を付与すればOKです。

Q3: JSONファイルを紛失したらどうなりますか?

A: 再度「新しい鍵を作成」すれば、新しいJSONファイルをダウンロードできます。古い鍵は削除しておきましょう。

Q4: エラーが出ました...

A: 以下を確認してください:

  • Google Sheets APIが有効になっているか
  • スプレッドシートにサービスアカウントの権限が付与されているか (client_emailが正しいか)
  • JSONファイルが正しくダウンロードできているか

Q5: 個人情報を扱っても大丈夫ですか?

A: サービスアカウントを使えば、スプレッドシートを非公開のまま運用できるので、基本的には問題ありません。ただし、本格的なサービスでは、より強固なデータベースを検討してください。


参考になるWeb記事

さらに理解を深めたい方は、以下の記事も参考にしてください:


まとめ

お疲れ様でした!

この記事では、Googleスプレッドシートをデータベース代わりに使うための、最も重要な準備作業を解説しました。

今日あなたができたこと:

  1. ✅ Google Cloudプロジェクトを作成
  2. ✅ Google Sheets APIを有効化
  3. ✅ サービスアカウント(ロボット)を作成
  4. ✅ 認証キー(JSON)をダウンロード
  5. ✅ スプレッドシートに権限を付与

これで、あなたは「データベース設定の壁」を乗り越えました!

この記事が役に立ったら、ブックマークして、友達にもシェアしてくださいね!

それでは、また次回の記事でお会いしましょう!