今回は、PythonやNode.jsなどのプログラムからGoogleスプレッドシートを操作するために必要な準備について、初心者の方にもわかりやすくまとめてみました。
実際に、この記事の手順を進めると、こんな感じでスプレッドシートを自動で書き換えるプログラムが作れるようになります!
Google Cloud Platform (GCP) にアクセスしよう
まずは、Google Cloud Platform(通称GCP)にアクセスします。
ここで、APIの設定や認証情報の作成ができます。
プロジェクトを新しく作成しよう
続いて、スプレッドシート操作専用の「プロジェクト」を作ります。
- ダッシュボード左上の「▼プロジェクト選択」ボタンをクリック
- 「新しいプロジェクト」を選択
- 好きなプロジェクト名(例:「スプレッドシート操作プロジェクト」など)を入力して、「作成」を押します。
作成したら、忘れずにそのプロジェクトを「選択」してくださいね!

「新しいプロジェクト」を選択し、プロジェクトを作成します。

任意のプロジェクト名を入力して作成ボタンを押します。

新規で作成したプロジェクトを選択します。

必要なAPIを有効化しよう
スプレッドシートを操作するには、次の2つのAPIを有効にする必要があります。
Google Drive API を有効化
- 左メニューの「ライブラリ」を開きます。
- 「Google Drive API」と検索。
- 出てきた「Google Drive API」をクリックして「有効にする」を押します。

検索入力部分に「Google Drive API」と入力します。

検索結果に出てきた「Google Drive API」を選択します。

「有効にする」を選択します。

Google Sheets API を有効化
同じ手順で、「Google Sheets API」も有効化します!
注意:
両方ちゃんと有効化しないと、あとでプログラムからエラーになるので注意しましょう!

検索入力部分に「google sheets api」と入力します。
検索結果に出てきた「Google Sheets API」を選択します。

「有効にする」を選択します。

サービスアカウントを作成しよう
ここからいよいよ、プログラムが使う認証情報(jsonファイル)を作成していきます。
- 左メニュー「認証情報」を開く
- 「認証情報を作成」→「サービスアカウント」を選びます
- 好きなサービスアカウント名(例:「spreadsheet-automation」など)を入力して「作成して続行」
次にロールを選ぶ画面が出てくるので、
- 「基本」→「編集者」
を選びます。
最後に「続行」「完了」を押して、サービスアカウントが作成できました!

「認証情報を作成」を選択します。

「サービスアカウント」を選択します。

任意のサービスアカウント名を入力して、「作成して続行」を選択します。

ロールを「基本」→「編集者」を選択します。

「続行」を選択、最後に「完了」を選択します。

認証情報(jsonファイル)をダウンロードしよう
あと一息です!
- 作成したサービスアカウントをクリック
- 「鍵」タブを開きます
- 「キーを追加」→「新しいキーを作成」
- 「JSON」を選択して「作成」
これで、PCに認証情報のjsonファイルがダウンロードされました!
このファイルはとても重要なので、絶対に失くさないように大事に保管してくださいね。
(GitHubとかにうっかりアップしないよう注意⚠️)

「鍵」を選択します。

「キーを追加」→「新しい鍵を作成」を選択します。

「JSON」→「作成」を選択します。

JsonファイルがPCにダウンロードされます。

このJsonファイルを使用してプログラムからスプレッドシートの操作が可能になります。
スプレッドシートをサービスアカウントと共有しよう!
作成したサービスアカウントにスプレッドシートへのアクセス権限を付与する必要があります。
サービスアカウントのメールアドレスをコピー!
「認証情報」から、該当アカウントを開きます。
そこで表示されている、xxxxx@project-id.iam.gserviceaccount.com のような形式のメールアドレスをコピーしましょう。

スプレッドシートを開いて「共有」ボタンをクリック!
次に、共有したいスプレッドシートをブラウザで開きます。
右上にある「共有」ボタンをクリックして、
「ユーザーやグループを追加」の入力欄に、先ほどコピーしたメールアドレスを貼り付けましょう。
権限は「編集者」に設定して、「送信」をクリックすればOKです!
💡これで、サービスアカウントがそのスプレッドシートを操作できるようになります!



スプレッドシートキーを取得しよう!
次に、プログラムからスプレッドシートを特定するために必要な「スプレッドシートキー」を取得します。
やり方はとっても簡単。
スプレッドシートのURLを見てください。
たとえば、以下のようなURLだったとします:
https://docs.google.com/spreadsheets/d/1_j3s1JKPyFcWrwRfM2BbBKnjz6weGod7ObNXM4SiMHE/edit#gid=0
このURLのうち、/d/
と /edit
の間にある部分が スプレッドシートキー です!
docs.google.com/spreadsheets/d/1_j3s1JKPyFcWrwRfM2BbBKnjz6weGod7ObNXM4SiMHE/edit?gid=0#gid=0
実際にプログラムからスプレッドシートを操作してみよう!
ここまでできたら、あとはプログラム側からこのjsonファイルを使って認証するだけです!
簡単なPythonコード例をもう一度載せておきます。
import gspread
from oauth2client.service_account import ServiceAccountCredentials
scope = ["https://spreadsheets.google.com/feeds", "https://www.googleapis.com/auth/drive"]
creds = ServiceAccountCredentials.from_json_keyfile_name('ダウンロードしたjsonファイル名.json', scope)
client = gspread.authorize(creds)
sheet = client.open('操作したいスプレッドシート名').sheet1
sheet.update_cell(1, 1, "自動で書き込みできた!")
Node.jsでやる場合は、googleapis
ライブラリを使えば似たような感じで操作できます。
まとめ:最初は面倒でも、慣れれば超便利!
最初に設定が多くてちょっとめんどくさいかもしれませんが、
これができると「手作業でコピペしてたあの作業」が一気に自動化できます!
特に、定期的なレポート作成や、ECサイトの在庫管理など、
毎日似たような作業をしている人にはめちゃくちゃ効果的です。
ぜひチャレンジしてみてくださいね!
コメント