Googleスプレッドシートでキャッシュ機能付きAI関数を無料で使う方法

AI関数とは?

Googleが提供している生成AIを使用できる関数です。

AI関数をセルに実行したい操作を説明する特定のプロンプトとデータ範囲を入力すれば、下図のように生成AI (Gemini)から返ってきたテキストを表示できます。

=AI("この動物について3行で説明して", A2)
GoogleスプレッドシートでAI関数を使用した結果

AI関数は非常に便利な関数ですが、前述の使用例のように1度回答されても、次に表示した際にはまた生成AIに送られて前回とは別のテキストが表示される可能性があるというデメリットがあります。

また、AI関数が使用できるのは一部の有料アカウントのみなので、無料アカウントなどでは使用できません。

AI関数が使用できるアカウント

  • Business Standard and Plus
  • Enterprise Standard and Plus
  • Google AI Ultra for Education
  • Google AI Pro and Ultra

※ 有料アカウントでもGoogle WorkspaceのStarter、スタンダードプラン、プレミアムプランなどは使用不可です。

上記のアカウントでないユーザーがAI関数を使用した場合は、「AI関数は使用できません。」と表示されます。

Googleスプレッドシート AI関数は使用できません。

AI関数を自作して無料で使う方法

前述の通り、AI関数は一部の有料アカウント以外のユーザーは使用できません。

しかし、無料アカウントでもGoogle Apps Script (以下GAS)でAI関数を自作すれば無料で使用可能になります。

AI関数の自作はプログラミングのスキルがないと少し難しい作業ですが、以下の手順通りに作業すればプログラミングのスキルがなくても3ステップで自作できます。

ステップ1: プロジェクトの作成

以下のURLにアクセスして、プロジェクトを作成します。(例: ai-func)

ステップ1: プロジェクトの作成

https://console.cloud.google.com/projectcreate?hl=ja

ステップ2: APIキーの作成

Google AI Studioにアクセスして、画面右上の「APIキーを作成」をクリックして、先程作成した「ai-func」のプロジェクトをインポートしてAPIキーを作成します。

私のアカウントは課金される設定にしているので割り当てティアに「Tier 1」と表示されますが、課金設定を過去にしていない方であれば「Free」と表示されて、完全無料で使用できます。

ステップ2: APIキーの作成

https://aistudio.google.com/api-keys

キーを作成したら、キーの青文字の部分をクリックすると「APIキーの詳細」が表示されますので、ここからAPIキーをコピーしてください。

Google AI Studio APIキーの詳細

APIキーが他人に知られてしまうと第三者に勝手に使われる可能性があるので、GoogleスプレッドシートやGASのコード内にAPIキーを直接書かないよう注意が必要です。

APIキーを第三者が閲覧可能な箇所に書いて漏洩してしまった可能性がある場合は、「APIキーの詳細」の左下の「キーを削除」で削除して、APIキーを作り直してください。

※ この記事では「AIzaSyBy_DXm2aUqOP37xjLRTXnaTxqK_AzwIky」というAPIキーが使われていますが、削除済みのため使用不可です。

ステップ3: GASの作成

まず、Googleスプレッドシートを開きます。

Googleスプレッドシートを開いたら、メニューバーの「拡張機能 → Apps Script」を選択してApps Scriptの画面を開きます。

Apps Scriptの画面を開いたら以下のGASのコードを貼り付けて保存してください。

function askAI(prompt, cellValue) {
  const apiKey = PropertiesService.getScriptProperties().getProperty('API_KEY')
  const props = PropertiesService.getScriptProperties()
  const cacheKey = prompt + cellValue
  const cached = props.getProperty(cacheKey)

  // キャッシュが保存されている場合はキャッシュを返す
  if (cached) {
    return cached
  }

  const url = 'https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash:generateContent'
  const payload = {
    contents: [
      {
        parts: [
          { text: `${prompt}\n${cellValue}` }
        ]
      }
    ]
  }
  const options = {
    method: 'post',
    contentType: 'application/json',
    headers: {
      'x-goog-api-key': apiKey
    },
    payload: JSON.stringify(payload),
    muteHttpExceptions: true
  }

  const response = UrlFetchApp.fetch(url, options)
  const json = JSON.parse(response.getContentText())
  const text = json.candidates[0].content.parts[0].text

  props.setProperty(cacheKey, text)

  return text
}

コードを貼り付けて保存したら、最後に左サイドバーの「プロジェクトの設定(歯車アイコン)」を選択して、一番下にある「スクリプト プロパティを追加」を押してください。

プロパティに「API_KEY」、値に「APIキー (例: AIzaSyBy_DXm2aUqOP37xjLRTXnaTxqK_AzwIky)」を入力して、「スクリプト プロパティを保存」を押せば関数を使用するための手順は完了です。

ステップ3: GASの作成

スクリプトプロパティに追加した値は第三者には閲覧不可なので安全です。

使用する関数名はAIではなくaskAI

自作の生成AIの関数名はすでにAI関数がGoogle側で用意されているので、askAIという関数名にしてあります。

この関数名を使用して、「=askAI(プロンプト, セルの範囲)」をセルに入力すればGeminiが生成したテキストがセルに表示されます。

=askAI("この動物について3行で説明して", A2)
Googleスプレッドシートでキャッシュ機能付きAI関数を無料で使う方法

このサンプルで使用されているgemini-2.5-flashの無料枠の制限は以下の通りです。

  • 1分あたりリクエスト(RPM): 5回
  • 1分あたりトークン処理(TPM): 250K
  • 1日あたりリクエスト(RPD): 20回
Gemini APIのレート制限

無料枠から有料課金に変更する

無料で使用する場合は使用制限が厳しいので、さらに使用したい場合は有料課金での使用を検討すると良いでしょう。

有料課金にするにはプロジェクトの「Billing(請求先)を設定 → カード情報などを登録」で有料課金のTier 1にステータスが変更されます。

https://console.cloud.google.com/billing

有料課金のTier 1だと、gemini-2.5-flashの制限は大幅に緩和されます。

  • 1分あたりリクエスト(RPM): 1,000回
  • 1分あたりトークン処理(TPM): 1M
  • 1日あたりリクエスト(RPD): 10,000回

有料課金といっても、今回のようにキャッシュを併用する場合はAPIを実行する回数を大幅に減らせるので、月々の料金は数十円〜500円程度です。(用途によって大きく変わります)

課金額はGoogle Cloud Consoleの「予算とアラート」に設定した金額を設定して指定額を超過した場合に、メールアラート通知を送信するようにしておけば、想定外の金額を請求される可能性は低くなりますので、設定することをオススメします。

Google Cloud Consoleの「予算とアラート」

https://console.cloud.google.com/billing