AIを使ってしたい100のこと

生成AIの可能性と、それを使って自分自身を表現する楽しさを伝えることを目指しています。

GoogleスプレッドシートをNotebookLMで活用!TXT変換と自動化の方法

はじめに

NotebookLMを活用して家計簿のデータを分析し、収支の傾向を確認しようとしました。しかし、Googleスプレッドシートを直接アップロードする方法が見つかりませんでした。

NotebookLMの対応フォーマットを調べたところ、PDFやTXTのテキストベースのファイルのみ対応していることがわかりました。そこで、スプレッドシートのデータをTXTファイルに変換する方法を探すことにしました。

本記事では、Google Geminiと対話しながら 「スプレッドシートをTXTに変換する最適な方法」 を調べた過程を共有します。 また、実際に試してみる中で発生した課題や、Geminiの案内が実際と異なったポイントについても詳しく解説します。

NotebookLMの制約の確認

まずはNotebookLMが「本当にスプレッドシートのアップロードができないのか?」を確認することにしました。そこで、Geminiに直接質問してみました。

NotebookLMに、Googleスプレッドシートをアップロードすることはできない?

プロンプト

NotebookLMに、Googleスプレッドシートをアップロードすることはできますか?

回答(Gemini)

NotebookLMへのGoogleスプレッドシートのアップロードに関して、現状では直接的なアップロードはサポートされていません。しかし、いくつかの代替手段を用いることで、スプレッドシートの情報をNotebookLMで活用することが可能です。

📌 Geminiの代替手段と今後の展望(クリックで展開)

現状と代替手段:

  • 直接的なアップロードは不可:
    • NotebookLMは主にテキストベースのドキュメント(PDF、テキストファイルなど)を対象としており、スプレッドシートの直接的な読み込みはサポートされていません。
  • 代替手段:
    • Googleドキュメント経由:
      • スプレッドシートの内容をコピーし、Googleドキュメントに貼り付けてから、そのドキュメントをNotebookLMにアップロードします。
    • PDF形式での保存:
      • スプレッドシートの重要な部分をPDF形式で保存し、そのPDFをNotebookLMにアップロードします。
    • WebページのURLを使用:
      • スプレッドシートをウェブ公開し、そのURLをNotebookLMに指定することで、内容を読み込ませることができます。この方法では、ファイルの共有設定に注意が必要です。

今後の展望:

  • 将来的には、Googleドライブのフォルダ全体のアップロードや、Googleドキュメント、スプレッドシート、スライドとの連携機能が追加される可能性があります。

これらの情報を参考に、目的に合った方法でスプレッドシートの情報を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)を使用する方法と、PythonGoogle Sheets APIを使用する方法の2つを紹介します。

1. Google Apps Script(GAS)を使用する方法

GASはGoogleスプレッドシートに組み込まれたJavaScriptベースのスクリプト環境です。これを使用すると、スプレッドシート内のデータを簡単に操作できます。

手順:

  1. スプレッドシートを開き、GASエディタを開く:
  2. スクリプトを記述:
    • 以下のスクリプトをコピーしてGASエディタに貼り付けます。
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);
  }
}
  1. スクリプトを実行:
    • 関数名(exportSheetsToText)を選択し、実行ボタンをクリックします。
    • 承認を求められた場合は、許可します。
  2. 出力されたファイルを確認:
    • Googleドライブに「SheetExports」というフォルダが作成され、その中に各シートのデータがテキストファイルとして保存されます。

回答(Gemini):PythonGoogle Sheets APIを使用する方法(不採用)

PythonGoogle Sheets APIを使う方法も提案されましたが、今回は以下の理由で採用しませんでした。

採用しなかった理由:
- APIキーの取得や認証設定が必要で、環境構築の手間がかかる
- シンプルな用途ならGASの方が手軽

(詳細な手順は折りたたみ)

Pythonを使った方法の詳細はこちら

2. PythonGoogle Sheets APIを使用する方法

PythonGoogle Sheets APIを使用すると、より柔軟なデータ処理が可能です。

手順:

  1. Google Cloud Platform(GCP)プロジェクトを作成:
    • GCPコンソールで新しいプロジェクトを作成します。
  2. Google Sheets APIを有効化:
    • APIライブラリでGoogle Sheets APIを有効にします。
  3. サービスアカウントを作成し、認証情報をダウンロード:
    • サービスアカウントを作成し、JSON形式の認証情報をダウンロードします。
  4. Pythonで必要なライブラリをインストール:
pip install google-api-python-client google-auth-httplib2 google-auth-oauthlib
  1. Pythonスクリプトを記述:
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()
  1. スクリプトを実行:
    • Pythonスクリプトを実行すると、各シートのデータがテキストファイルとして出力されます。

どちらの方法を選ぶべきか:

  • GASはスプレッドシート内で完結するため、手軽に実行できます。
  • PythonGoogle Sheets APIはより柔軟なデータ処理が可能で、大規模なデータや複雑な処理に適しています。

どちらの方法も、12個のシートを効率的にtxtファイルとして出力することができます。ご自身のスキルや環境に合わせて選択してください。

処理結果

スクリプトを「実行」したところ、Googleドライブにスプレッドシートの各シートがTXTファイルとして出力されました。

SheetExportsというフォルダに各シートの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ドライブに保存し、実行できるようにするための必須ステップです。

「ドライブにプロジェクトを保存」をクリックすることで、以下の処理が行われます。

  • プロジェクトの保存:
    • スクリプトGoogleドライブに保存され、プロジェクトとして管理されるようになります。
  • 実行環境の準備:
    • GASがスクリプトの実行に必要な環境を準備し、実行ボタンが有効になります。
  • 権限の付与:

したがって、「ドライブにプロジェクトを保存」をクリックし、プロジェクトを保存することで、スクリプトを実行できるようになります。これはGASの正常な動作であり、問題ではありません。

GASを使用する際には、以下の点にも注意してください。

  • 権限の承認:
  • セキュリティ:
    • GASは強力なツールであるため、信頼できるスクリプトのみを実行するように注意してください。

これらの点に注意して、GASを安全に活用してください。

解決策: 「ドライブにプロジェクトを保存」をクリックすると、実行ボタンが有効化される。

📖 Geminiとスクリプト活用で得られた4つの学び

1️⃣ Geminiのサポートでスクリプト作成のハードルが大幅に下がった
→ GASの知識がなくても、AIの案内に従えば簡単にスクリプトを作成できた。

2️⃣ 「ちょっとした画面操作の違い」で作業が止まることがある
→ しかし、対話型AIを使うことで即座に解決策を見つけられた。

3️⃣ スプレッドシートスクリプト+AI」の組み合わせは業務効率化に最適
→ 反復的な作業を自動化できるため、今後も活用の幅が広がると感じた。

4️⃣ エンジニアだけでなく、一般の業務担当者にも有益!
ExcelGoogleスプレッドシートを日常的に使う人なら、GASやGeminiを活用することで手作業を減らし、より効率的に仕事を進められる。

まとめ

➡ 今回の経験から、AIとスクリプトを組み合わせることで、手作業を減らし業務を大幅に効率化できることを実感しました。 今後も、GeminiやGASを活用しながら、より便利な仕組みを模索していきたいと考えています! もしあなたもスプレッドシートの作業を効率化したいなら、まずはGASを使ってみることから始めてみてはいかがでしょうか?