スポンサーリンク

【初心者向け】PythonでGoogleスプレッドシートを操作する方法|gspreadとAPI設定をやさしく解説

自動化スクリプト
  1. 1. はじめに|Pythonでスプレッドシートを操作したい理由
  2. 2. 事前準備|Google Cloud PlatformでAPIを有効化しよう
    1. ✅ ステップ1:Googleアカウントを用意しよう
    2. ✅ ステップ2:Google Cloud Platform(GCP)にアクセス
    3. ✅ ステップ3:新しいプロジェクトを作成しよう
    4. ✅ ステップ4:Google Sheets API を有効にしよう
    5. ✅ ステップ5:サービスアカウントを作成して秘密鍵をダウンロード
  3. 3. Python側の準備|gspreadとoauth2clientのインストール
    1. ✅ 必要なライブラリをインストールしよう
    2. ✅ 認証情報(ダウンロードしたJSONファイル)を使って認証しよう
    3. ✅ Pythonで認証してみよう
    4. ✅ 補足:スプレッドシートの共有を忘れずに!
  4. 4. 実践!Pythonでスプレッドシートを読み書きしてみよう
    1. ✅ スプレッドシートを用意しよう
    2. ✅ データを読み込む(get_all_records)
    3. ✅ データを書き込む(update_cell / append_row)
      1. 1つのセルを更新(update_cell)
      2. 行を追加する(append_row)
    4. ✅ 実際の活用イメージ
  5. 5. 応用例|業務に役立つ自動化スクリプトのアイデア
    1. 💡 アイデア①:Webスクレイピング+スプレッドシート
    2. 💡 アイデア②:フォーム入力内容を整理&記録
    3. 💡 アイデア③:定期レポートを自動出力
    4. 💡 アイデア④:API連携で外部データを記録
  6. 6. トラブル対処|よくあるエラーとその解決法
    1. ❗エラー①:gspread.exceptions.SpreadsheetNotFound
    2. ❗エラー②:gspread.exceptions.APIError: 403 PERMISSION_DENIED
    3. ❗エラー③:FileNotFoundError: [Errno 2] No such file or directory
    4. ❗エラー④:AttributeError: 'Worksheet' object has no attribute 'xxxx'
    5. 💡 困ったときのコツ
  7. 7. まとめ|Python×スプレッドシートの可能性は無限大!
    1. 🔁 これまでの流れを振り返ろう!
    2. 🤖 自動化で時間と手間を大幅カット!
    3. 🔗 あわせて読みたい
  8. よくある質問(Q&A)
    1. 関連投稿:

1. はじめに|Pythonでスプレッドシートを操作したい理由

こんにちは!みなさんは「Googleスプレッドシート」って使ったことありますか?
たとえば、学校の出席表をまとめたり、バイトのシフト表を作ったり、家計簿をつけたり…いろんな場面で使われていますよね。

でも、毎日ちょっとずつ手作業でデータを入力するのって、ちょっとめんどくさいし、時間もかかっちゃいます。
そこで登場するのが**Python(パイソン)**というプログラミング言語!


Pythonを使うと、スプレッドシートに自動でデータを書き込んだり、読み取ったり、整理したりすることができるんです。
たとえばこんなことができるようになります:

  • アンケートの結果を自動でまとめる
  • 毎日の売上をグラフにして保存する
  • 他のサイトから情報を取ってきてスプレッドシートに記録する

しかも、Pythonは初心者にもやさしくて、文法もシンプル。プログラミングが初めてでも安心してチャレンジできます。

この記事では、「Pythonを使ってGoogleスプレッドシートを自動で操作する方法」を、できるだけやさしく、ステップごとに解説していきます。




2. 事前準備|Google Cloud PlatformでAPIを有効化しよう

PythonでGoogleスプレッドシートを操作するには、「GoogleのAPI(エーピーアイ)」という仕組みを使います。
APIというのは、かんたんに言うと「プログラムとサービスをつなぐ通訳さん」のようなもの。
PythonとGoogleスプレッドシートが仲良くなるために、まずこのAPIを使えるようにする準備が必要です。

✅ ステップ1:Googleアカウントを用意しよう

まずは、Googleアカウント(Gmailなど)を用意してください。すでに使っていればOKです!


✅ ステップ2:Google Cloud Platform(GCP)にアクセス

次に、Googleの開発者用ページ「Google Cloud Platform」にアクセスします。

🔗 https://console.cloud.google.com/

ここで、Pythonからスプレッドシートにアクセスするための“プロジェクト”を作っていきます。


✅ ステップ3:新しいプロジェクトを作成しよう

  1. ページ右上の「プロジェクトの選択」→「新しいプロジェクト」をクリック
  2. プロジェクト名を入力(例:「python-sheet-demo」など)
  3. 「作成」ボタンをクリック!

✅ ステップ4:Google Sheets API を有効にしよう

  1. 左上のメニュー(三本線)→「APIとサービス」→「ライブラリ」
  2. 検索バーで「Google Sheets API」と入力
  3. 「有効にする」ボタンをクリック

これで、Pythonからスプレッドシートにアクセスできる準備が整いました!


✅ ステップ5:サービスアカウントを作成して秘密鍵をダウンロード

  1. 左メニューの「認証情報」→「認証情報を作成」→「サービスアカウント」
  2. 名前と説明を入力(適当でOK)→「作成」
  3. 「ロールを選択」→「編集者」または「プロジェクト → 編集者」
  4. 「完了」まで進む

次に、認証に使う鍵ファイル(JSONファイル)をダウンロードします。

  • 作成したサービスアカウントを選択
  • 「鍵」タブ → 「鍵を追加」 → 「新しい鍵を作成」→「JSON」を選択して「作成」
  • 自動的に .json ファイルがダウンロードされます。これはあとでPythonスクリプトで使います!

※このファイルはとても大事なので、なくさないように保管してください。




3. Python側の準備|gspreadとoauth2clientのインストール

さて、Google側の準備ができたら、いよいよPythonでスプレッドシートを動かす準備です!

このセクションでは、Pythonからスプレッドシートにアクセスするために必要なライブラリのインストールと、認証の設定をしていきます。


✅ 必要なライブラリをインストールしよう

PythonでGoogleスプレッドシートを扱うには、主に2つのライブラリを使います:

  • gspread:Googleスプレッドシートを操作するライブラリ
  • oauth2client:Google認証を助けてくれるライブラリ

インストール方法はとってもかんたん!
以下のコマンドをターミナルやコマンドプロンプトにコピペして実行しましょう。

pip install gspread oauth2client

これで必要なライブラリがインストールされました!


✅ 認証情報(ダウンロードしたJSONファイル)を使って認証しよう

前のセクションでダウンロードした「.jsonの秘密鍵ファイル」を、Pythonファイルと同じフォルダに置いておいてください。
ファイル名の例:my-sheet-key.json


✅ Pythonで認証してみよう

さっそくPythonでGoogleスプレッドシートに接続してみましょう。
以下のコードを spreadsheet_test.py などのファイルに書いて、動かしてみてください。

import gspread
from oauth2client.service_account import ServiceAccountCredentials

# スプレッドシートAPIにアクセスするためのスコープ(アクセス範囲)
scope = [
'https://spreadsheets.google.com/feeds',
'https://www.googleapis.com/auth/drive'
]

# サービスアカウントキーの読み込み
credentials = ServiceAccountCredentials.from_json_keyfile_name('my-sheet-key.json', scope)

# 認証情報を使ってクライアントを作成
client = gspread.authorize(credentials)

# スプレッドシートに接続してみる(タイトルを指定)
spreadsheet = client.open("Pythonテストシート")

# 1つ目のワークシートを取得
worksheet = spreadsheet.sheet1

# 1行目の内容を表示
print(worksheet.row_values(1))

✅ 補足:スプレッドシートの共有を忘れずに!

Googleスプレッドシートを作成したら、サービスアカウントのメールアドレスを「閲覧者」や「編集者」として共有しておく必要があります。

  1. .jsonファイルの中を開くと、 "client_email" の項目があります
     例:your-service-account@your-project.iam.gserviceaccount.com
  2. このメールアドレスを、対象のスプレッドシートに「共有」してください(Googleドライブで右クリック → 共有)

これを忘れると「アクセス権がありません」と怒られます😅

ここまでできれば、Pythonからスプレッドシートを操作する準備は完了です!
次は、実際にデータを読み込んだり書き込んだりしてみる方法を紹介します!




4. 実践!Pythonでスプレッドシートを読み書きしてみよう

ここまでの準備がバッチリできたら、いよいよ実践編!
このセクションでは、Pythonを使ってGoogleスプレッドシートからデータを読み込んだり、新しいデータを書き込んだりしてみましょう。


✅ スプレッドシートを用意しよう

まずはGoogleスプレッドシートをひとつ作成してください。
タイトルは「Pythonテストシート」など、さっきのコードと合わせるとスムーズです。

そして前のセクションでもお伝えしたように、サービスアカウントに編集権限を共有するのも忘れずに!


✅ データを読み込む(get_all_records)

シートに何かデータ(名前や点数など)をあらかじめ入力しておいて、以下のコードで読み取ってみましょう。

# スプレッドシートのデータをすべて読み込む
records = worksheet.get_all_records()

# 結果を表示
for record in records:
print(record)

たとえばこんなスプレッドシートがあると…

名前点数
たろう90
はなこ85

出力はこんな感じになります:

{'名前': 'たろう', '点数': 90}
{'名前': 'はなこ', '点数': 85}

すごい!Pythonからちゃんとデータが読めましたね👏


✅ データを書き込む(update_cell / append_row)

次はスプレッドシートに新しいデータを書き込んでみましょう!

1つのセルを更新(update_cell)

# 2行目2列目のセルを「100」に変更
worksheet.update_cell(2, 2, 100)

行を追加する(append_row)

# 新しいデータを追加する
new_row = ['ゆうた', 88]
worksheet.append_row(new_row)

このコードを実行すると、シートの一番下に「ゆうた, 88」という行が追加されます!


✅ 実際の活用イメージ

これらの操作を組み合わせれば、次のような自動化も可能になります:

  • Webからデータを取得して毎日スプレッドシートに追記
  • 入力フォームの内容を自動で記録
  • 毎月のレポートをまとめて出力

つまり、**めんどうな手作業をどんどん自動化できる!**というわけです😊

次は、こうした「自動化の応用例」をもう少し広げて紹介します。
業務効率化や趣味にも活かせる便利なスクリプトをぜひチェックしてください!




5. 応用例|業務に役立つ自動化スクリプトのアイデア

PythonとGoogleスプレッドシートを組み合わせると、ただの表計算ツールがめちゃくちゃ便利な自動化ツールに変身します!

ここでは、実際に活用できるアイデアをいくつか紹介します。「これ、自分の仕事にも使えそう!」というものが見つかるかも?


💡 アイデア①:Webスクレイピング+スプレッドシート

Pythonには「Webのページから情報を自動で読み取る」Webスクレイピングという機能があります。これとスプレッドシートを組み合わせれば、

  • 為替や株価、天気などの最新情報を毎朝自動で記録
  • ECサイトの価格を定期的にチェック&保存

といったことが簡単にできちゃいます!

📝 関連記事:PythonでWebスクレイピングしてスプレッドシートに書き込む方法


💡 アイデア②:フォーム入力内容を整理&記録

Googleフォームでアンケートを取ったとき、回答は自動でスプレッドシートにたまっていきますよね?

そのシートをPythonで読み取り、自動で:

  • データをまとめて別シートに分類
  • グラフ化してレポートを作成
  • 特定の条件で通知(例:満足度が低い回答があればLINE通知)

なんてことも可能です!


💡 アイデア③:定期レポートを自動出力

月末や週末にエクセルで報告書をつくるのって、正直めんどうですよね…😅

でも、Pythonで:

  • データを集計(平均・合計・件数など)
  • 日付別に分けてまとめる
  • スプレッドシートのフォーマットに自動で記入

すれば、**ワンクリックでレポート完成!**も夢じゃありません。


💡 アイデア④:API連携で外部データを記録

Pythonは他のWebサービスと連携するのも得意!
たとえば:

  • Twitter APIで特定のキーワードを含むツイート数を記録
  • ChatGPTやGemini APIの出力を保存
  • LINEやSlackと連携してメッセージをログ保存

などなど、「外の世界」と「Googleスプレッドシート」をつなぐハブとして使えます。

「毎回手でコピペしてる」「毎朝見るだけの表がある」
そんな作業こそ、Pythonにまかせてみませんか?

自動化スクリプトをひとつ作ってしまえば、あとは放っておくだけで勝手にお仕事をしてくれますよ!




6. トラブル対処|よくあるエラーとその解決法

Pythonでスプレッドシートを操作していると、「うまく動かない!」「エラーが出た!」ということがよくあります。
でも大丈夫!落ち着いてエラーの内容を確認すれば、ほとんどの問題は自分で解決できます👍

ここでは、初心者がよく遭遇するエラーとその対処法をまとめました。


❗エラー①:gspread.exceptions.SpreadsheetNotFound

原因: 指定したスプレッドシートのタイトルが間違っているか、アクセス権がないときに出るエラーです。

対処法:

  • スプレッドシートの名前が正しいか確認する(全角・半角・スペース含めて一致しているか)
  • サービスアカウントのメールアドレスに**スプレッドシートの共有権限(閲覧・編集)**が与えられているか確認する

❗エラー②:gspread.exceptions.APIError: 403 PERMISSION_DENIED

原因: Google Sheets APIが有効になっていない、または権限の問題でアクセスできない場合に出ます。

対処法:

  • Google Cloud Platformで「Google Sheets API」が有効になっているか確認する
  • サービスアカウントのロールが「編集者(Editor)」などになっているかを確認する

❗エラー③:FileNotFoundError: [Errno 2] No such file or directory

原因: Pythonが指定されたJSONファイル(秘密鍵)を見つけられない場合に出ます。

対処法:

  • .jsonファイルがPythonコードと同じフォルダにあるか
  • ファイル名が間違っていないか(拡張子含めて)

例:my-key.jsonと書いたのに、実際はmy-key (1).jsonになっているケースも多いです!


❗エラー④:AttributeError: 'Worksheet' object has no attribute 'xxxx'

原因: 間違った関数名を使っている可能性があります。

対処法:

  • 使っているメソッド(関数)の名前が正しいか確認する
    例:worksheet.get_all_records() は正しいが、 worksheet.getAllRecords() はNG(Pythonは小文字と大文字を区別します)

💡 困ったときのコツ

  • エラーの内容をGoogleでコピペ検索してみると、同じ悩みの人がたくさんいます!
  • gspread公式ドキュメント(英語)もとても参考になります。
  • Pythonのコードに print() を入れて、どこまで動いてるかを確認するとデバッグしやすくなります。

ここまでできれば、Python×スプレッドシートの基本操作はほぼマスターです✨




7. まとめ|Python×スプレッドシートの可能性は無限大!

おつかれさまでした!ここまで読んでいただきありがとうございます😊
この記事では、PythonでGoogleスプレッドシートを自動で操作する方法を、ステップごとにやさしく解説してきました。


🔁 これまでの流れを振り返ろう!

  • Google Cloud Platform で Sheets API を有効化
  • Pythonに必要なライブラリ(gspread, oauth2client)をインストール
  • .jsonファイルを使って認証
  • データの読み込み書き込み行の追加などを実践
  • よくあるエラーの対処法もばっちり!

🤖 自動化で時間と手間を大幅カット!

Pythonを使えば、毎日の作業を「ポチッ」と一発で終わらせることができます。
たとえば:

  • 定期レポートの作成
  • Webからの情報収集と記録
  • フォームの回答を自動で整理
  • APIから取得したデータの蓄積

こんなふうに、手間のかかる作業をプログラムにまかせるだけで劇的にラクになります!

「プログラミングって難しそう…」と思っていた方も、
**実際に動かしてみると意外とカンタンだった!**と感じていただけたのではないでしょうか?

少しずつ試しながら、自分の生活や仕事に合ったスクリプトを作ってみてくださいね!


🔗 あわせて読みたい

よくある質問(Q&A)

Q
Google Sheets APIの利用にお金はかかりますか?
A

ほとんどの人は無料で使えます!
Google Sheets APIには無料枠が用意されていて、通常の個人利用や小規模な業務用途なら問題なく使えます。
ただし、1日数万回以上のアクセスなど大量に使う場合は有料になる可能性もあるので注意してください。

Q
スプレッドシートのURLやIDでアクセスする方法はありますか?
A

はい、可能です。
client.open_by_url("スプレッドシートのURL")
client.open_by_key("スプレッドシートのID") を使うことで、タイトルではなくURLやIDで開くこともできます。

Q
複数のシートを操作したいときはどうすればいいですか?
A

spreadsheet.worksheet("シート名") でシートを指定できます。
1つのスプレッドシート内に複数のシート(タブ)がある場合、シート名を指定することで切り替えて操作ができます。

sheet2 = spreadsheet.worksheet("集計表")

※当サイトはアフィリエイト広告を利用しています。リンクを経由して商品を購入された場合、当サイトに報酬が発生することがあります。

※本記事に記載しているAmazon商品情報(価格、在庫状況、割引、配送条件など)は、執筆時点のAmazon.co.jp上の情報に基づいています。
最新の価格・在庫・配送条件などの詳細は、Amazonの商品ページをご確認ください。

スポンサーリンク