【Gemini深掘り④】Gemini API実践:Python・GASで作る業務自動化ツール
公開日:2026年4月30日 / カテゴリ:AIツール深掘りシリーズ
Gemini深掘りシリーズ4回目(最終回)は、いよいよ API実践編です。
「ChatGPTやGeminiは使えるようになった。でも、毎回手動で操作するのが面倒……」——そう感じている方のために、本記事ではGemini APIを使って 繰り返し業務を自動化する具体的な方法 を、コード付きで解説します。
PythonとGAS(Google Apps Script)の2つの方法を取り上げ、プログラミング初心者でもコピー&ペーストで動かせるサンプルコードを用意しました。「コードを書いたことがない」方でも、ステップに沿って進めれば手元で動かせます。
目次
- 事前準備:APIキーの取得と環境構築
- Python×Gemini API:3つの業務自動化レシピ
- GAS×Gemini API:Googleシート・Gmail自動化
- モデル選択と料金の最適化
- 実用Tips:プロンプト設計のコツ
- よくある質問(FAQ)
- まとめ・シリーズ総括
1. 事前準備:APIキーの取得と環境構築 {#1-準備}
Gemini APIキーの取得
まずはAPIキーを取得します。無料で始められます。
- Google AI Studio にアクセス(Googleアカウントでログイン)
- 左メニューの「Get API key」をクリック
- 「Create API key in new project」を選択
- 表示されたAPIキーをコピーして安全な場所に保管
無料ティアについて:Google AI StudioのAPIは、多くのモデルで無料ティアが利用可能です(リクエスト数・トークン数の上限あり)。個人利用・学習目的なら無料範囲内で十分試せます。本番運用では有料ティアへの移行が必要です。
(PR) APIを使った高度なAI活用と並行して、日常業務でも Gemini Advanced を活用すると相乗効果が高まります(月額$19.99、1ヶ月無料トライアルあり。※料金は変動する可能性があります。公式サイトでご確認ください)。
Python環境の構築(Python編を試す方)
Pythonがインストールされていない方はまず python.org からインストールしてください(バージョン3.10以上推奨)。
必要なライブラリをインストールします。
pip install google-generativeai python-dotenv
APIキーを環境変数として管理するため、プロジェクトフォルダに .env ファイルを作成します。
GEMINI_API_KEY=ここに取得したAPIキーを貼り付ける
これで準備完了です。
2. Python×Gemini API:3つの業務自動化レシピ
レシピ①:メール・ビジネス文書の下書き自動生成
日々のメール返信・提案書・お礼文などを自動生成するスクリプトです。
import google.generativeai as genai
from dotenv import load_dotenv
import os
# APIキーの読み込み
load_dotenv()
genai.configure(api_key=os.getenv("GEMINI_API_KEY"))
# モデルの設定(コスト効率重視ならFlash-Lite)
model = genai.GenerativeModel("gemini-2.5-flash")
def generate_business_email(situation: str, recipient: str, key_points: str) -> str:
"""ビジネスメールの下書きを生成する"""
prompt = f"""
以下の情報をもとに、丁寧なビジネスメールを日本語で作成してください。
状況:{situation}
宛先:{recipient}
伝えたいポイント:{key_points}
件名も含めて出力してください。
"""
response = model.generate_content(prompt)
return response.text
# 使用例
result = generate_business_email(
situation="先日の打ち合わせへのお礼",
recipient="株式会社○○ 田中様",
key_points="貴重な時間をいただいた感謝、次回打ち合わせの日程確認"
)
print(result)
このスクリプトを実行すると、状況・宛先・要点を入力するだけで丁寧なビジネスメールの下書きが自動生成されます。
レシピ②:テキストファイル・CSVレポートの自動要約
会議議事録・長文レポート・調査結果などを自動要約するスクリプトです。
import google.generativeai as genai
from dotenv import load_dotenv
import os
load_dotenv()
genai.configure(api_key=os.getenv("GEMINI_API_KEY"))
model = genai.GenerativeModel("gemini-2.5-flash")
def summarize_document(file_path: str, summary_style: str = "箇条書き") -> str:
"""テキストファイルを要約する"""
with open(file_path, "r", encoding="utf-8") as f:
content = f.read()
prompt = f"""
以下のドキュメントを{summary_style}形式で要約してください。
重要なポイントを5〜7項目で整理してください。
---
{content}
---
"""
response = model.generate_content(prompt)
return response.text
# 使用例
summary = summarize_document("meeting_notes.txt", summary_style="箇条書き")
print(summary)
議事録ファイルを渡すだけで、要点を自動整理してくれます。
レシピ③:フォルダ内ファイルの一括処理(バッチ自動化)
複数のテキストファイルを一括処理して、結果をCSVに保存するスクリプトです。
import google.generativeai as genai
from dotenv import load_dotenv
import os
import csv
import glob
import time
load_dotenv()
genai.configure(api_key=os.getenv("GEMINI_API_KEY"))
model = genai.GenerativeModel("gemini-2.5-flash-lite") # 大量処理はLiteモデルで節約
def batch_analyze_files(input_folder: str, output_csv: str):
"""フォルダ内のtxtファイルを一括分析してCSVに保存"""
results = []
files = glob.glob(f"{input_folder}/*.txt")
for file_path in files:
with open(file_path, "r", encoding="utf-8") as f:
content = f.read()
prompt = f"以下のテキストのトーン(ポジティブ/ネガティブ/中立)と主要トピックを1行で分析してください:\n{content[:500]}"
response = model.generate_content(prompt)
results.append({
"ファイル名": os.path.basename(file_path),
"分析結果": response.text
})
time.sleep(1) # API制限対策
# CSVに保存
with open(output_csv, "w", newline="", encoding="utf-8-sig") as f:
writer = csv.DictWriter(f, fieldnames=["ファイル名", "分析結果"])
writer.writeheader()
writer.writerows(results)
print(f"{len(results)}件の分析が完了しました → {output_csv}")
# 使用例
batch_analyze_files("./reports", "analysis_results.csv")
顧客アンケートや日報などを一括分析するケースで特に効果を発揮します。
3. GAS×Gemini API:Googleシート・Gmail自動化
GAS(Google Apps Script)はプログラミング環境の構築が不要で、GoogleスプレッドシートやGmailから直接AI機能を呼び出せます。Pythonが難しいと感じる方にはこちらが入門として最適です。
GASの基本設定
- Googleスプレッドシートを新規作成
- メニューの「拡張機能 → Apps Script」をクリック
- 以下のコードをエディタに貼り付け
レシピ④:Googleシートのデータ一括分析・コメント生成
スプレッドシートのA列にデータ、B列にAIのコメントを自動入力するスクリプトです。
const GEMINI_API_KEY = "ここにAPIキーを入力";
const GEMINI_API_URL = `https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash:generateContent?key=${GEMINI_API_KEY}`;
function analyzeSheetData() {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
const lastRow = sheet.getLastRow();
for (let i = 2; i <= lastRow; i++) {
const inputText = sheet.getRange(i, 1).getValue();
if (!inputText) continue;
const prompt = `以下のデータを簡潔に分析し、改善点や注目点を1〜2文でコメントしてください:\n${inputText}`;
const payload = {
contents: [{ parts: [{ text: prompt }] }]
};
const options = {
method: "post",
contentType: "application/json",
payload: JSON.stringify(payload),
muteHttpExceptions: true
};
const response = UrlFetchApp.fetch(GEMINI_API_URL, options);
const result = JSON.parse(response.getContentText());
const comment = result.candidates[0].content.parts[0].text;
sheet.getRange(i, 2).setValue(comment);
Utilities.sleep(1000); // API制限対策
}
SpreadsheetApp.getUi().alert("分析完了!");
}
スプレッドシートに「analyzeSheetData」ボタンを追加すれば、クリックひとつでA列のデータ全件にAIコメントが自動入力されます。
レシピ⑤:Gmail下書きの自動生成
特定の条件に合うメールを受信したとき、返信下書きをGmailに自動作成するスクリプトです。
function createAutoReplyDraft() {
// 未読かつ「お問い合わせ」を含むメールを検索
const threads = GmailApp.search("is:unread subject:お問い合わせ", 0, 5);
threads.forEach(thread => {
const messages = thread.getMessages();
const lastMessage = messages[messages.length - 1];
const bodyText = lastMessage.getPlainBody().substring(0, 800);
const sender = lastMessage.getFrom();
const prompt = `
以下のお問い合わせメールに対する、丁寧で簡潔な返信下書きを作成してください。
送信者:${sender}
メール本文:${bodyText}
`;
const payload = {
contents: [{ parts: [{ text: prompt }] }]
};
const options = {
method: "post",
contentType: "application/json",
payload: JSON.stringify({
...JSON.parse(JSON.stringify(payload))
}),
muteHttpExceptions: true
};
// Gemini APIを呼び出し(GEMINI_API_URLは上記と同じ定数を使用)
const response = UrlFetchApp.fetch(GEMINI_API_URL, options);
const result = JSON.parse(response.getContentText());
const draftBody = result.candidates[0].content.parts[0].text;
// Gmailに下書き作成
GmailApp.createDraft(sender, "Re: " + thread.getFirstMessageSubject(), draftBody);
});
Logger.log("下書き作成完了");
}
このスクリプトをトリガー(毎時実行など)に設定すれば、受信メールへの返信下書きが自動で用意されます。確認・送信は人間が行うため、安全に運用できます。
(PR) GASの活用スキルを体系的に学びたい方には、Udemy のGoogle Apps Script入門コースが手軽です(買い切り$10〜$200程度。※料金は変動する可能性があります。公式サイトでご確認ください)。
4. モデル選択と料金の最適化 {#4-料金}
Gemini APIには複数のモデルがあり、用途に応じて使い分けることでコストを大幅に抑えられます。
主要モデルの料金比較(2026年4月時点)
| モデル | 入力 | 出力 | 特徴 |
|---|---|---|---|
| Gemini 2.5 Flash-Lite | $0.10 / 1Mトークン | $0.40 / 1Mトークン | 最安・高速、シンプルなタスク向け |
| Gemini 2.5 Flash | $0.30 / 1Mトークン | $2.50 / 1Mトークン | バランス型、汎用業務自動化に最適 |
| Gemini 2.5 Pro | $1.25 / 1Mトークン | $10 / 1Mトークン | 高精度・複雑タスク向け(200K以下) |
※上記は2026年3〜4月時点の参考価格です。料金は変動する可能性があります。最新価格は公式サイトでご確認ください。
無料ティア:Google AI Studioでは、多くのモデルでリクエスト数制限内であれば無料で利用できます。1日の上限を超えると翌日リセットされます。個人学習・小規模利用には十分です。
コスト最適化の基本戦略
タスク別モデル使い分けが最重要です。
- 単純な文書整形・要約・分類 → Gemini 2.5 Flash-Lite(最安)
- メール下書き・報告書作成・一般的な業務自動化 → Gemini 2.5 Flash(推奨)
- 複雑な分析・コーディング・長文推論 → Gemini 2.5 Pro(必要時のみ)
同じ処理でもモデルをFlash-LiteからProに切り替えると、コストが最大100倍以上変わります。まずFlash-Liteで試し、品質不足なら段階的に上位モデルへ移行する方法がおすすめです。
(PR) API連携を含む本格的なAIシステム開発・データサイエンスの基礎を学ぶなら、Coursera の「Google AI Essentials」や「Machine Learning Specialization」が整備されています(月額$39〜$79、7日間無料トライアルあり。※料金は変動する可能性があります)。
5. 実用Tips:プロンプト設計のコツ
APIを使った自動化でも、プロンプトの質がアウトプットの質を大きく左右します。
Tip 1:出力形式を明示する
# 悪い例
prompt = "この文章を要約して"
# 良い例
prompt = """
以下の文章を要約してください。
形式:箇条書き(3〜5項目)
各項目:20〜30文字以内
---
{content}
"""
出力形式・項目数・文字数を明示することで、後処理が不要な安定した出力が得られます。
Tip 2:システムプロンプトでキャラクターを固定する
長期的なタスク(毎日実行するバッチ処理など)では、システムプロンプトで役割・トーン・言語を固定すると品質が安定します。
model = genai.GenerativeModel(
"gemini-2.5-flash",
system_instruction="あなたは日本企業の法務・コンプライアンス専門家です。正確で専門的な日本語で回答してください。"
)
Tip 3:エラーハンドリングと自動リトライ
API呼び出しが失敗することもあります。本番環境では必ずエラーハンドリングを実装しましょう。
import time
def call_gemini_with_retry(model, prompt, max_retries=3):
"""リトライ付きAPI呼び出し"""
for attempt in range(max_retries):
try:
response = model.generate_content(prompt)
return response.text
except Exception as e:
if attempt < max_retries - 1:
wait_time = 2 ** attempt # 指数バックオフ
print(f"エラー発生。{wait_time}秒後にリトライ... ({e})")
time.sleep(wait_time)
else:
raise e
(PR) GeminiとClaude、どちらのAPIが自分のユースケースに向いているか迷う場合は、まず ChatGPT Plus と合わせて3ツールを比較してみましょう(月額$20、無料プランあり。※料金は変動する可能性があります)。
6. よくある質問(FAQ)
Q1. Gemini APIの無料ティアはいつまで使えますか?
A. 現時点(2026年4月)では、多くのモデルで無料ティアが継続提供されています。ただしGoogleの方針変更により、無料ティアの内容や対象モデルは変わる可能性があります。本番運用では有料プランへの移行を前提として計画することをおすすめします。
Q2. プログラミング経験がほぼゼロですが、GASのコードは使えますか?
A. コピー&ペーストで試すことは十分できます。本記事のGASサンプルは最小限のコードで構成しています。変更が必要な箇所(APIキー・シート名など)はコメントで示しているので、そこだけ書き換えてください。エラーが出た場合もGeminiやChatGPTにエラーメッセージを貼り付ければ解決策を提示してくれます。
Q3. APIキーの管理で注意すべきことは?
A. 最重要の注意点はAPIキーをGitHubなどの公開リポジトリに絶対にアップしないことです。Pythonでは.envファイルとpython-dotenvライブラリで環境変数管理を行い、GASではPropertiesServiceを活用することを推奨します。漏洩した場合は即座にキーを無効化・再発行してください。
Q4. GeminiとOpenAI API、どちらを使うべきですか?
A. 用途によって異なります。Google Workspace(スプレッドシート・Gmail・ドキュメント)との連携が多い場合はGemini API一択です。OpenAI APIは関連エコシステム(LangChainなど)が成熟しており、複雑なエージェント構築向けです。コストではGemini Flash-Liteが最安水準のひとつです。
7. まとめ・シリーズ総括 {#7-まとめ}
今回のGemini深掘り④では、PythonとGASを使ったGemini APIの業務自動化実践をお届けしました。
シリーズ4回の総まとめ
| 回 | テーマ | 主な内容 |
|---|---|---|
| ① | 全機能解説 | Ultra/Pro/Flashの使い分け |
| ② | Workspace連携 | Gmail・ドキュメント・スプレッドシート |
| ③ | マルチモーダル | 画像・音声・動画を使った高度プロンプト |
| ④ | API実践 | Python・GASで業務自動化(本記事) |
APIを使いこなすことで、Geminiの活用は「質問に答えてもらう」から「業務フロー全体に組み込む」レベルへ一段階進化します。まずは本記事のサンプルコードをそのまま動かし、自分のデータに置き換えてみることからスタートしましょう。
ゴールデンウィーク中に少し時間を作って、ひとつでも自動化スクリプトを動かしてみると、5月以降の業務効率が大きく変わります。
関連記事
– 【Gemini深掘り①】Gemini 2.0の全機能解説:Ultra・Pro・Flashの使い分け方
– 【Gemini深掘り②】Google Workspace連携術:Gmail・ドキュメント・スプレッドシートを自動化
– 【Gemini深掘り③】マルチモーダル活用術:画像・音声・動画を使った高度プロンプト
– AI×ウェブサイト制作副業で月8万円:ノーコード・AIで始めるWeb制作ビジネス
本記事の情報は2026年4月時点のものです。2026年8月更新:記事中のサンプルコードで使用している gemini-2.5-flash / gemini-2.5-flash-lite は2026年10月16日に廃止が予定されています。新規に導入する場合は後継モデル(Gemini 3 Flash Preview や Gemini 3.1 Flash-Liteなど)へのモデル名の置き換えをご検討ください。Gemini APIの料金・モデルラインナップ・機能は頻繁に更新されます。最新情報はGoogle AI公式サイトでご確認ください。
(PR)表記のリンクはアフィリエイトリンクを含みます。本記事掲載のサンプルコードは参考用途を目的としており、本番環境での利用に際しては十分なテストとエラーハンドリングの実装を行ってください。