PythonでGoogleスプレッドシートを自動化!データ入力・更新・分析を効率化する方法

プログラミング
記事内に広告が含まれています。
スポンサーリンク

はじめに

brian
brian

Googleスプレッドシートの手作業に時間がかかっていませんか?Pythonを使って自動化することで、データの入力や更新、分析を効率化できます。このガイドでは、Google Sheets APIの設定からPythonでの操作方法、定期的な自動実行の手順まで、初心者にもわかりやすく解説しています。業務効率化に興味がある方は、ぜひチェックしてみてください!

スプレッドシートを自動化するメリット

Googleスプレッドシートは、手軽に使える表計算ツールですが、手作業でデータを入力・更新していると、時間がかかったりミスが発生したりします。
Pythonを使って自動化すれば、作業の効率が向上し、正確性もアップします。

例えば、こんな作業を自動化できます。

  • 毎日決まった時間にデータを入力・更新
  • 外部データ(APIやCSVファイルなど)をスプレッドシートに反映
  • 条件に応じてデータを整理・加工
  • 特定の条件を満たしたら通知を送信

特に、業務でスプレッドシートを活用している場合は、自動化の効果が大きく、手作業の負担を大幅に減らせます。

Pythonで自動化する理由

スプレッドシートの自動化には、Google Apps Script(GAS)を使う方法もありますが、Pythonを使うと次のようなメリットがあります。

  • 豊富なライブラリ:データ分析やAPI連携がしやすい
  • 外部ツールとの連携が簡単:Excelやデータベースとの連携も可能
  • ローカル環境で動作:Google Apps Scriptよりも自由度が高い

特に、Pythonには 「gspread」 という便利なライブラリがあり、これを使うことで簡単にGoogleスプレッドシートを操作できます。

この記事で学べること

この記事では、Pythonを使ってGoogleスプレッドシートを操作する方法を、初心者にもわかりやすく解説します。

  • GoogleスプレッドシートAPIの設定方法
  • Pythonでスプレッドシートを開く、データを読み書きする方法
  • 自動でデータを入力・更新する方法
  • スケジュール実行の方法

「スプレッドシートの作業を自動化したい!」という方は、ぜひ最後まで読んでみてください。

スポンサーリンク

GoogleスプレッドシートAPIのセットアップ

PythonでGoogleスプレッドシートを操作するためには、Googleが提供する 「Google Sheets API」 を使う必要があります。
この章では、APIを有効化し、Pythonからスプレッドシートを操作できるようにする手順を説明します。

Google Sheets APIを有効化する

まず、Google Cloud Consoleを開いて、Google Sheets APIを有効にします。

Google Cloud Consoleにアクセス

以下のリンクからGoogle Cloud Consoleを開きます。
👉 Google Cloud Console

新しいプロジェクトを作成

  1. 画面上部の 「プロジェクトの選択」 をクリック。
  2. 「新しいプロジェクトを作成」 を選択し、任意のプロジェクト名を入力。
  3. 「作成」 をクリック。

Google Sheets APIを有効化

  1. 左側の 「APIとサービス」→「ライブラリ」 を開く。
  2. 検索バーで 「Google Sheets API」 を検索。
  3. 「有効にする」 をクリック。

サービスアカウントの作成

Google Sheets APIを使うには、PythonスクリプトがGoogleの認証を通過できるように、サービスアカウントを作成する必要があります。

認証情報を作成

  1. 左側のメニューから 「APIとサービス」→「認証情報」 を開く。
  2. 「認証情報を作成」 ボタンをクリックし、「サービスアカウント」 を選択。
  3. サービスアカウント名を入力(例:「spreadsheet-bot」)。
  4. 「作成」→「続行」→「完了」 をクリック。

JSONキーをダウンロード

  1. 作成したサービスアカウントを開く。
  2. 「鍵」タブ を開き、「鍵を追加」→「新しい鍵を作成」 をクリック。
  3. 「JSON」 を選択して 「作成」 をクリック。
  4. 自動的にJSONファイルがダウンロードされるので、これをPythonスクリプトのあるフォルダに保存。

このJSONファイルは、PythonからGoogleスプレッドシートにアクセスするための鍵となるので、大切に保管してください。

Pythonライブラリのインストール

次に、PythonでGoogleスプレッドシートを操作できるようにするため、「gspread」 と 「oauth2client」 というライブラリをインストールします。

Bash
pip install gspread oauth2client

これで、Python環境の準備が整いました!

スポンサーリンク

Pythonでスプレッドシートを操作する基本

GoogleスプレッドシートAPIのセットアップが完了したら、いよいよPythonを使ってスプレッドシートを操作してみましょう。
この章では、Pythonの 「gspread」 ライブラリを使って、スプレッドシートを開き、データを読み書きする基本操作を解説します。

Googleスプレッドシートを開く

まずは、PythonスクリプトからGoogleスプレッドシートにアクセスしてみましょう。

必要なライブラリをインポート

Pythonのスクリプトファイル(例:spreadsheet.py)を作成し、以下のコードを記述します。

Python
import gspread
from oauth2client.service_account import ServiceAccountCredentials

認証を設定

先ほどダウンロードしたJSONキーを使って認証を行います。

Python
# Google APIのスコープを設定
scope = ["https://spreadsheets.google.com/feeds", "https://www.googleapis.com/auth/drive"]

# 認証情報を読み込む
credentials = ServiceAccountCredentials.from_json_keyfile_name("your-key.json", scope)

# Googleスプレッドシートに接続
client = gspread.authorize(credentials)
💡 ポイント

"your-key.json" の部分は、ダウンロードしたJSONキーのファイル名に置き換えてください。

スプレッドシートを開く

スプレッドシートの URL から スプレッドシートID を取得し、Pythonから開きます。

Python
# スプレッドシートID(URLの一部)
spreadsheet_id = "あなたのスプレッドシートID"

# スプレッドシートを開く
spreadsheet = client.open_by_key(spreadsheet_id)

スプレッドシートIDは、GoogleスプレッドシートのURLの /d/ と /edit の間にある英数字の部分です。

例:

Bash
https://docs.google.com/spreadsheets/d/1A2B3C4D5E6F7G8H9I0J/edit

この場合、スプレッドシートIDは 1A2B3C4D5E6F7G8H9I0J になります。

シートの選択

スプレッドシートには 複数のシート(タブ) を含めることができます。
特定のシートを選択するには、次のように書きます。

Python
# シート名で指定
worksheet = spreadsheet.worksheet("Sheet1")

# インデックス番号で指定(1番目のシート)
worksheet = spreadsheet.get_worksheet(0)
💡 ヒント

シート名は 大文字・小文字を区別 するので注意してください(例:「Sheet1」と「sheet1」は別扱い)。

セルの読み書き

データを読み取る

セルの値を取得するには、次のように書きます。

Python
# 特定のセルの値を取得(例:A1セル)
value = worksheet.acell("A1").value
print(value)

行や列のデータを取得する方法もあります。

Python
# 1行目のデータを取得(リスト形式)
row_values = worksheet.row_values(1)
print(row_values)

# A列のデータを取得
col_values = worksheet.col_values(1)
print(col_values)

データを書き込む

特定のセルにデータを書き込むには、次のように書きます。

Python
# A1セルにデータを書き込む
worksheet.update_acell("A1", "こんにちは!")

また、行や列単位でデータを更新することもできます。

Python
# 2行目にデータを書き込む
worksheet.update("A2:C2", [["データ1", "データ2", "データ3"]])

シートの追加・削除

新しいシートを追加するには、次のように書きます。

Python
# 「新しいシート」を追加(20行×10列)
spreadsheet.add_worksheet(title="新しいシート", rows="20", cols="10")

不要になったシートを削除するには、以下のコードを実行します。

Python
# シートを削除
spreadsheet.del_worksheet(worksheet)

この章では、Pythonを使ってGoogleスプレッドシートを操作する基本を学びました。

✅ Googleスプレッドシートを開く方法
✅ シートを選択する方法
✅ データを読み書きする方法
✅ シートを追加・削除する方法

これで、Pythonを使ってスプレッドシートを操作する準備が整いました!

スポンサーリンク

データの自動入力と更新

Pythonを使うと、Googleスプレッドシートにデータを自動入力したり、既存のデータを更新したりすることができます。
この章では、リストや辞書を使ったデータの一括入力や、条件付きでデータを更新する方法を紹介します。

リストを使ってデータを一括入力する

スプレッドシートの特定の範囲にリスト形式のデータを一括で入力することができます。

行単位でデータを入力

例えば、2行目の A列〜C列 にデータを入力するには、次のように書きます。

Python
# A2〜C2にデータを書き込む
worksheet.update("A2:C2", [["りんご", "バナナ", "オレンジ"]])

複数行にデータを入力

複数行のデータを一括入力する場合は、リストのリスト(2次元配列)を使います。

Python
# A2〜C4にデータを書き込む
data = [
    ["りんご", "バナナ", "オレンジ"],  # 2行目
    ["ぶどう", "メロン", "スイカ"],   # 3行目
    ["なし", "もも", "さくらんぼ"]   # 4行目
]
worksheet.update("A2:C4", data)

この方法を使うと、大量のデータを一気に入力できるので便利です。

辞書を使ってデータを自動入力する

辞書(dict)を使って、スプレッドシートにデータを入力することもできます。
例えば、売上データを辞書に格納し、対応するセルに入力する場合は次のようにします。

Python
sales_data = {
    "A2": "2025-02-15",
    "B2": "商品A",
    "C2": 1500,
    "A3": "2025-02-16",
    "B3": "商品B",
    "C3": 2000
}

# 辞書のキー(セルの位置)を使ってデータを書き込む
for cell, value in sales_data.items():
    worksheet.update_acell(cell, value)

この方法を使えば、データの構造を変更しやすく、プログラムの拡張性が高まります。

既存のデータを更新する

スプレッドシート内のデータを条件付きで更新したい場合、以下のようにすると便利です。

データを検索して更新

特定の値を持つセルを検索し、新しい値に更新する方法です。
例えば、「商品A」の価格を変更する場合:

Python
# 「商品A」があるセルを検索
cell = worksheet.find("商品A")

# 同じ行のC列(価格)を更新
worksheet.update_cell(cell.row, 3, 1800)
💡 ポイント

find() メソッドは、最初に見つかったセルを返します。複数ある場合は findall() を使いましょう。

条件付きでデータを更新

例えば、「価格が1500円以上の商品の価格を10%割引する」処理を実装できます。

Python
# C列(価格)を取得
prices = worksheet.col_values(3)

# 価格を更新(ヘッダー行を除くため2行目から)
for i in range(1, len(prices)):
    price = int(prices[i])
    if price >= 1500:
        new_price = int(price * 0.9)  # 10%割引
        worksheet.update_cell(i + 1, 3, new_price)  # スプレッドシートの行番号に合わせる

このように、条件に応じてデータを更新することもできます。

条件付き書式を適用する(色を変更)

データの値に応じてセルの色を変更することも可能です。
例えば、「価格が2000円以上のセルを赤色にする」場合は、次のように記述します。

Python
from gspread_formatting import *

# 価格が2000円以上のセルを取得
prices = worksheet.col_values(3)
for i in range(1, len(prices)):
    if int(prices[i]) >= 2000:
        fmt = CellFormat(backgroundColor=Color(1, 0.5, 0.5))  # 赤色
        format_cell_range(worksheet, f"C{i+1}", fmt)
💡 ポイント

gspread_formatting ライブラリを使用するため、事前にインストールが必要です。

Bash
pip install gspread-formatting

この章では、スプレッドシートにデータを自動入力・更新する方法を紹介しました。

✅ リストを使ってデータを一括入力する方法
✅ 辞書を使ってデータを入力する方法
✅ 条件付きでデータを更新する方法
✅ セルの色を変更する方法

次の章では、 「データの取得と分析」 に進みます!
スプレッドシートのデータを取得し、Pythonの Pandas を使って分析する方法を紹介します。

スポンサーリンク

データの取得と分析

スプレッドシートのデータを取得し、Pythonで分析することで、手作業なしでデータの集計やレポート作成が可能になります。
この章では、Pythonの Pandas を使って、スプレッドシートのデータを取得・加工・分析する方法を紹介します。

Pandasを使うメリット

Pandasは、データの集計や分析を効率よく行うためのライブラリです。

✅ スプレッドシートのデータを 簡単に読み込める
✅ データのフィルタリングやソート ができる
✅ 統計分析やグラフ作成 にも対応

Pandasを使うことで、スプレッドシートのデータをExcelやCSVのように扱うことができます。

Pandasのインストール

まず、Pandasがインストールされていない場合は、以下のコマンドでインストールしてください。

Bash
pip install pandas

スプレッドシートのデータを取得する

スプレッドシートのデータをPandasのデータフレーム(DataFrame)に変換すると、分析しやすくなります。

Python
import gspread
import pandas as pd
from oauth2client.service_account import ServiceAccountCredentials

# Google APIのスコープを設定
scope = ["https://spreadsheets.google.com/feeds", "https://www.googleapis.com/auth/drive"]

# 認証情報を読み込む
credentials = ServiceAccountCredentials.from_json_keyfile_name("your-key.json", scope)
client = gspread.authorize(credentials)

# スプレッドシートを開く
spreadsheet = client.open_by_key("あなたのスプレッドシートID")

# シートを選択
worksheet = spreadsheet.worksheet("Sheet1")

# スプレッドシートのデータを取得(リスト形式)
data = worksheet.get_all_values()

# Pandasのデータフレームに変換
df = pd.DataFrame(data)

# データを表示(先頭5行)
print(df.head())
💡 ポイント
  • get_all_values() は、スプレッドシートの全データをリスト形式で取得します。
  • pd.DataFrame(data) で、リストをデータフレーム(表)に変換できます。

データを整理する

スプレッドシートのデータを適切に処理するため、データフレームの ヘッダー(カラム名) を設定しておきましょう。

Python
# 1行目をカラム名に設定
df.columns = df.iloc[0]

# 2行目以降をデータとして扱う
df = df[1:]

# インデックスをリセット
df.reset_index(drop=True, inplace=True)

# データの型を自動変換(数値をint/floatにする)
df = df.infer_objects()

# データを表示
print(df.head())

この処理を行うことで、カラム名が設定され、データ分析がしやすくなります。

データを分析する

基本的な統計情報を取得

Python
# データの概要を表示
print(df.describe())

この describe() を実行すると、データの 平均・最大値・最小値・標準偏差 などが表示されます。

条件に応じたデータの抽出

例えば、「売上金額が2000円以上のデータ」を抽出する場合:

Python
# 売上金額が2000円以上のデータを取得
df_filtered = df[df["売上金額"].astype(int) >= 2000]

# 結果を表示
print(df_filtered)

売上の合計を計算

Python
# 売上金額の合計を計算
total_sales = df["売上金額"].astype(int).sum()
print(f"売上合計: {total_sales} 円")

このように、スプレッドシートのデータをPythonで簡単に集計できます。

グラフを作成する

PandasとMatplotlibを使うと、データをグラフ化できます。

Matplotlibのインストール

Bash
pip install matplotlib

売上の推移を折れ線グラフにする

Python
import matplotlib.pyplot as plt

# 日付と売上金額のデータを取得
df["売上金額"] = df["売上金額"].astype(int)  # 数値型に変換

# グラフを作成
plt.figure(figsize=(10, 5))
plt.plot(df["日付"], df["売上金額"], marker="o", linestyle="-")

# タイトルとラベル
plt.title("売上推移")
plt.xlabel("日付")
plt.ylabel("売上金額(円)")
plt.xticks(rotation=45)

# グラフを表示
plt.show()
💡 ポイント
  • plt.plot() を使うと、簡単に折れ線グラフを作成できます。
  • rotation=45 を指定すると、日付のラベルが見やすくなります。

この章では、Pythonを使ってスプレッドシートのデータを取得・分析する方法を学びました。

✅ Pandasを使ってスプレッドシートのデータを取得する方法
✅ データを整理して分析しやすくする方法
✅ 売上の合計や条件付きのデータ抽出を行う方法
✅ Matplotlibを使ってグラフを作成する方法

次の章では、「定期的な自動実行(スケジューリング)」 に進みます!
Pythonスクリプトを毎日・毎週自動で実行する方法を解説します。

スポンサーリンク

定期的な自動実行(スケジューリング)

スプレッドシートの自動化をさらに便利にするには、Pythonスクリプトを 定期的に実行 するのが効果的です。
例えば、毎朝スプレッドシートを更新したり、定時にデータを取得して分析レポートを作成したりできます。

この章では、Windows・macOS/Linux でPythonスクリプトをスケジュール実行する方法 を解説します。

WindowsでPythonスクリプトを定期実行する(タスクスケジューラ)

Windowsでは、タスクスケジューラ(Task Scheduler) を使うことで、Pythonスクリプトを指定した時間に自動実行できます。

スクリプトの準備

例えば、以下のようなスクリプト update_spreadsheet.py を作成します。

Python
import gspread
from oauth2client.service_account import ServiceAccountCredentials

# 認証
scope = ["https://spreadsheets.google.com/feeds", "https://www.googleapis.com/auth/drive"]
credentials = ServiceAccountCredentials.from_json_keyfile_name("your-key.json", scope)
client = gspread.authorize(credentials)

# スプレッドシートを開く
spreadsheet = client.open_by_key("あなたのスプレッドシートID")
worksheet = spreadsheet.worksheet("Sheet1")

# A2セルに最新の日付を更新
from datetime import datetime
current_date = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
worksheet.update_acell("A2", current_date)

print("スプレッドシートが更新されました!")

タスクスケジューラで定期実行を設定

  1. タスクスケジューラを開く
    • Win + R を押して「taskschd.msc」と入力し、Enter
  2. 基本タスクの作成
    • 「基本タスクの作成」 をクリック
    • タスク名を入力(例:「スプレッドシート自動更新」)
  3. トリガーを設定(スケジュールの設定)
    • 「毎日」 や 「毎週」 などを選択
    • 実行する時間を設定(例:毎日 8:00 AM)
  4. 操作を設定(Pythonスクリプトを実行)
    • 「プログラムの開始」 を選択
    • プログラム/スクリプトに python.exe のパス を入力(例:C:\Users\YourUser\AppData\Local\Programs\Python\Python39\python.exe
    • 引数の追加に スクリプトのパス を入力(例:C:\scripts\update_spreadsheet.py
  5. 設定を保存して完了!

macOS / Linux でPythonスクリプトを定期実行する(cron)

macOS や Linux では、cronジョブ を使ってPythonスクリプトを定期的に実行できます。

cronジョブを編集

ターミナルを開き、以下のコマンドを実行。

Bash
crontab -e

すると、テキストエディタ(viやnano)が開きます。

cronジョブを追加

例えば、毎朝 8:00 にスクリプトを実行したい場合は、以下の1行を追加します。

Bash
0 8 * * * /usr/bin/python3 /home/user/scripts/update_spreadsheet.py
💡 説明
  • 0 8 * * * → 毎日 8:00 AM に実行
  • /usr/bin/python3 → Python のパス(which python3 で確認可)
  • /home/user/scripts/update_spreadsheet.py → スクリプトのパス

保存して閉じると、設定が適用されます。

Google Apps Script(GAS)と連携して定期実行する

Pythonを実行する環境がない場合、Google Apps Script(GAS) を使ってスプレッドシートを自動更新することもできます。

GASエディタを開く

  1. Googleスプレッドシートを開く
  2. 「拡張機能」→「Apps Script」 を選択

スクリプトを作成

以下のコードを入力し、スプレッドシートのA2セルに日付を自動入力するように設定します。

JavaScript
function updateSpreadsheet() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1");
  var date = new Date();
  sheet.getRange("A2").setValue(date);
}

トリガーを設定

  1. 「トリガー」 タブを開く
  2. 「トリガーを追加」 をクリック
  3. 「時間主導型」 のトリガーを選択し、「毎日」や「毎時」 などを設定

これで、スプレッドシートを定期的に更新できるようになります!


この章では、Pythonスクリプトを定期的に実行する方法を紹介しました。

✅ Windowsでタスクスケジューラを使って自動実行する方法
✅ macOS / Linux でcronジョブを使って自動実行する方法
✅ Google Apps Script(GAS)を使ってスプレッドシートを定期更新する方法

これで、Pythonでスプレッドシートを完全自動化できるようになりました!

次の章では、「まとめ」 に進みます。ここまで学んだ内容を整理し、さらに学習を深めるためのリソースも紹介します。

スポンサーリンク

まとめ

この記事では、Pythonを使ってGoogleスプレッドシートを自動化する方法を詳しく解説しました。
スプレッドシートの手作業を減らし、データ入力や更新、分析を効率的に行う方法を学びましたね。

この記事の振り返り

🔹 GoogleスプレッドシートAPIのセットアップ

  • APIを有効化し、サービスアカウントを作成
  • gspread ライブラリを使ってスプレッドシートにアクセス

🔹 Pythonでスプレッドシートを操作する基本

  • スプレッドシートを開く
  • セルのデータを読み書きする
  • シートの追加・削除

🔹 データの自動入力と更新

  • リストや辞書を使ってデータを一括入力
  • 条件付きでデータを更新
  • 条件付き書式を適用(セルの色変更)

🔹 データの取得と分析

  • Pandas を使ってスプレッドシートのデータを分析
  • 条件付きデータ抽出や統計計算
  • Matplotlib を使ったグラフ作成

🔹 定期的な自動実行(スケジューリング)

  • Windowsでは タスクスケジューラ を利用
  • macOS/Linuxでは cronジョブ を活用
  • Google Apps Script(GAS) を使ったスケジュール実行も可能

Pythonを活用してさらに便利に!

スプレッドシートの自動化を活用すると、以下のような 業務効率化 が可能になります。

✅ 定期的にデータを取得・更新(例:売上データ、在庫情報)
✅ 外部APIと連携してデータを集約(例:Google Analytics、天気予報)
✅ レポートを自動生成し、グラフや統計をメールで送信

Pythonを使えば、 単純作業を減らし、よりクリエイティブな業務に集中 できるようになります!

さらに学びたい方へ

Pythonでのスプレッドシート自動化をもっと深く学びたい方におすすめのリソースを紹介します。

📘 公式ドキュメント

🎥 Udemy講座

実際に動画を見て勉強したい方には今回は特に以下の講座がオススメですよ!
以下のリンクからぜひ内容を確認してみてくださいね。

最後に

この記事を通して、PythonでGoogleスプレッドシートを自動化する方法が理解できたと思います。
最初は難しく感じるかもしれませんが、 「少しずつ実装して試す」 ことが大切です!

ぜひ、学んだ内容を活かして、 自分の業務やプロジェクトに応用 してみてくださいね。

🚀 あなたのスプレッドシート自動化が成功しますように! 😊

brian
brian

ここまで読んでいただきありがとうございます!

UdemyのPythonコースにはオンラインで学習ができる動画コンテンツがたくさんあります。

当ブログのような文章メインの説明では足りない箇所を補えると思うので、もっと詳しく勉強したいという方はぜひチェックしてみてください!

コメント

タイトルとURLをコピーしました