はじめに
NotebookLMを活用して家計簿のデータを分析し、収支の傾向を確認しようとしました。しかし、Googleスプレッドシートを直接アップロードする方法が見つかりませんでした。
NotebookLMの対応フォーマットを調べたところ、PDFやTXTのテキストベースのファイルのみ対応していることがわかりました。そこで、スプレッドシートのデータをTXTファイルに変換する方法を探すことにしました。
本記事では、Google Geminiと対話しながら 「スプレッドシートをTXTに変換する最適な方法」 を調べた過程を共有します。 また、実際に試してみる中で発生した課題や、Geminiの案内が実際と異なったポイントについても詳しく解説します。
NotebookLMの制約の確認
まずはNotebookLMが「本当にスプレッドシートのアップロードができないのか?」を確認することにしました。そこで、Geminiに直接質問してみました。
プロンプト
回答(Gemini)
NotebookLMへのGoogleスプレッドシートのアップロードに関して、現状では直接的なアップロードはサポートされていません。しかし、いくつかの代替手段を用いることで、スプレッドシートの情報をNotebookLMで活用することが可能です。
📌 Geminiの代替手段と今後の展望(クリックで展開)
現状と代替手段:
- 直接的なアップロードは不可:
- NotebookLMは主にテキストベースのドキュメント(PDF、テキストファイルなど)を対象としており、スプレッドシートの直接的な読み込みはサポートされていません。
- 代替手段:
今後の展望:
これらの情報を参考に、目的に合った方法でスプレッドシートの情報をNotebookLMで活用してください。
NotebookLMはテキストファイルに対応しているため、スプレッドシートをTXTに変換すれば活用できそうです。そこで、効率的に変換する方法を探りました。
Googleスプレッドシートを.txtで出力する方法
スプレッドシートには12個以上のシートがあるため、手作業で1つずつテキストファイルに保存するのは非効率です。
そこで、Geminiに「効率的にTXTファイルとして保存する方法」を尋ねたところ、2つの方法を提案してくれました。
プロンプト
そうですか。では、複数(12個)のシートを持つGoogleスプレッドシートのファイルを、効率的に.txtで出力する方法を提案してください。
回答(Gemini):Google Apps Script(GAS)を使用する方法(採用)
✅ 採用理由:
- Googleスプレッドシートの機能内で完結し、環境構築が不要
- すぐに試せて、手軽にTXTファイルを生成できる
12個のシートを持つGoogleスプレッドシートを効率的に.txtファイルとして出力する方法はいくつか考えられます。ここでは、Google Apps Script(GAS)を使用する方法と、PythonとGoogle Sheets APIを使用する方法の2つを紹介します。
1. Google Apps Script(GAS)を使用する方法
GASはGoogleスプレッドシートに組み込まれたJavaScriptベースのスクリプト環境です。これを使用すると、スプレッドシート内のデータを簡単に操作できます。
手順:
function exportSheetsToText() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheets = ss.getSheets(); var folder = DriveApp.createFolder("SheetExports"); // 出力先のフォルダを作成 for (var i = 0; i < sheets.length; i++) { var sheet = sheets[i]; var sheetName = sheet.getName(); var data = sheet.getDataRange().getValues(); var text = ""; for (var j = 0; j < data.length; j++) { text += data[j].join("\t") + "\n"; // タブ区切りでテキストを生成 } var file = folder.createFile(sheetName + ".txt", text); } }
回答(Gemini):PythonとGoogle Sheets APIを使用する方法(不採用)
PythonとGoogle Sheets APIを使う方法も提案されましたが、今回は以下の理由で採用しませんでした。
❌ 採用しなかった理由:
- APIキーの取得や認証設定が必要で、環境構築の手間がかかる
- シンプルな用途ならGASの方が手軽
(詳細な手順は折りたたみ)
Pythonを使った方法の詳細はこちら
2. PythonとGoogle Sheets APIを使用する方法
PythonとGoogle Sheets APIを使用すると、より柔軟なデータ処理が可能です。
手順:
- Google Cloud Platform(GCP)プロジェクトを作成:
- GCPコンソールで新しいプロジェクトを作成します。
- Google Sheets APIを有効化:
- サービスアカウントを作成し、認証情報をダウンロード:
- サービスアカウントを作成し、JSON形式の認証情報をダウンロードします。
- Pythonで必要なライブラリをインストール:
pip install google-api-python-client google-auth-httplib2 google-auth-oauthlib
from googleapiclient.discovery import build from google.oauth2 import service_account SCOPES = ["https://www.googleapis.com/auth/spreadsheets.readonly"] SERVICE_ACCOUNT_FILE = "path/to/your/service-account-file.json" # 認証情報ファイルのパス SPREADSHEET_ID = "your-spreadsheet-id" # スプレッドシートID def export_sheets_to_text(): creds = service_account.Credentials.from_service_account_file( SERVICE_ACCOUNT_FILE, scopes=SCOPES ) service = build("sheets", "v4", credentials=creds) sheet = service.spreadsheets() spreadsheet = sheet.get(spreadsheetId=SPREADSHEET_ID).execute() sheets = spreadsheet.get("sheets") for s in sheets: sheet_name = s.get("properties").get("title") result = ( sheet.values() .get(spreadsheetId=SPREADSHEET_ID, range=sheet_name) .execute() ) values = result.get("values", []) if not values: print(f"{sheet_name} にデータがありません。") continue with open(f"{sheet_name}.txt", "w") as f: for row in values: f.write("\t".join(map(str, row)) + "\n") if __name__ == "__main__": export_sheets_to_text()
どちらの方法を選ぶべきか:
どちらの方法も、12個のシートを効率的にtxtファイルとして出力することができます。ご自身のスキルや環境に合わせて選択してください。
処理結果
スクリプトを「実行」したところ、Googleドライブにスプレッドシートの各シートがTXTファイルとして出力されました。
Google Apps Script(GAS)を使用する際の疑問と解決策
Google Apps Script(GAS)を使う際に、Geminiが提示した手順通りに進まない点が出てきました。これらのことをGeminiに確認しながら作業を進めました。
「ツール」→「スクリプトエディタ」の誤りについて
プロンプト
Googleスプレッドシートに、「ツール」>「スクリプトエディタ」は存在しませんでした。「拡張機能」>「Apps Script」を使えばよいでしょうか?
回答
はい、その通りです。Googleスプレッドシートのメニューはアップデートされており、以前は「ツール」>「スクリプトエディタ」でしたが、現在は「拡張機能」>「Apps Script」からアクセスするようになっています。
したがって、ご指摘の通り、「拡張機能」>「Apps Script」を選択してスクリプトエディタを開き、提示したGoogle Apps Scriptのコードを貼り付けて実行してください。
混乱を招いてしまい申し訳ありませんでした。最新の情報に基づいて操作を進めてください。
✅ 修正点: Googleスプレッドシートのメニューはアップデートされ、「ツール」ではなく「拡張機能」→「Apps Script」からスクリプトエディタを開く。
「実行ボタンが押せない」問題
プロンプト
スクリプトをGASエディタに貼り付けたのですが、実行ボタンが押せない状態でした。 「ドライブにプロジェクトを保存」をクリックしたところ、実行ボタンを押せるようになりました。
回答
はい、その通りです。GAS(Google Apps Script)エディタでスクリプトを初めて実行する場合、またはスクリプトに重要な変更を加えた場合には、プロジェクトを保存する必要があります。これは、GASがスクリプトをクラウド上のGoogleドライブに保存し、実行できるようにするための必須ステップです。
「ドライブにプロジェクトを保存」をクリックすることで、以下の処理が行われます。
- プロジェクトの保存:
- 実行環境の準備:
- GASがスクリプトの実行に必要な環境を準備し、実行ボタンが有効になります。
- 権限の付与:
したがって、「ドライブにプロジェクトを保存」をクリックし、プロジェクトを保存することで、スクリプトを実行できるようになります。これはGASの正常な動作であり、問題ではありません。
GASを使用する際には、以下の点にも注意してください。
- 権限の承認:
- セキュリティ:
- GASは強力なツールであるため、信頼できるスクリプトのみを実行するように注意してください。
これらの点に注意して、GASを安全に活用してください。
✅ 解決策: 「ドライブにプロジェクトを保存」をクリックすると、実行ボタンが有効化される。
📖 Geminiとスクリプト活用で得られた4つの学び
1️⃣ Geminiのサポートでスクリプト作成のハードルが大幅に下がった
→ GASの知識がなくても、AIの案内に従えば簡単にスクリプトを作成できた。
2️⃣ 「ちょっとした画面操作の違い」で作業が止まることがある
→ しかし、対話型AIを使うことで即座に解決策を見つけられた。
3️⃣ 「スプレッドシート+スクリプト+AI」の組み合わせは業務効率化に最適
→ 反復的な作業を自動化できるため、今後も活用の幅が広がると感じた。
4️⃣ エンジニアだけでなく、一般の業務担当者にも有益!
→ ExcelやGoogleスプレッドシートを日常的に使う人なら、GASやGeminiを活用することで手作業を減らし、より効率的に仕事を進められる。
まとめ
➡ 今回の経験から、AIとスクリプトを組み合わせることで、手作業を減らし業務を大幅に効率化できることを実感しました。 今後も、GeminiやGASを活用しながら、より便利な仕組みを模索していきたいと考えています! もしあなたもスプレッドシートの作業を効率化したいなら、まずはGASを使ってみることから始めてみてはいかがでしょうか?