GAS連携:スプレッドシートが覚醒。関数入力で文章を自動生成する

AI活用術
AI活用術

「ChatGPTで1件ずつ処理するのは便利だけど、データが100件あったら……?」
「スプレッドシートのデータをコピーして、ChatGPTに貼って、回答をコピーして、またスプレッドシートに戻して……」

この「無限コピペ作業」に絶望したことはありませんか?
数件なら手作業でもいいですが、数百件、数千件のアンケート分析や商品データ作成、キャッチコピー生成となると、日が暮れてしまいます。

「スプレッドシートの関数みたいに、=AI(A1) って入力したら、勝手にAIが考えて答えを出してくれたらいいのに」
……それ、自分で作れます。しかも、プログラムのコードは一行も書かなくていいんです。

なぜ、システム開発にAIを使うべきなのか?

Googleスプレッドシートには、プログラムを書いて機能を拡張できる「Google Apps Script(GAS)」という機能があります。
これを使えば、OpenAI(ChatGPT)の頭脳をスプレッドシートに直結させることができます。

通常、これを行うにはJavaScriptというプログラミング言語の知識が必要です。
しかし、今はAIがいます。

「こんな機能が欲しい」と日本語で伝えるだけで、AIが完璧なコードを書いてくれます。
あなたは、AIが書いたコードをコピーして貼り付けるだけ。
「エンジニアじゃないから無理」と諦めていた自動化ツール開発が、AIのおかげで誰でもできるようになったのです。

【実践手順】コードを書いてもらい、貼り付ける

※この手順には、OpenAIの「APIキー(有料・従量課金)」が必要です。
まだ持っていない方は、OpenAIのサイトで取得してください。

  1. AIアプリを起動する
    ChatGPTなどを開きます。
  2. プロンプトを送信
    下の「コピペ用プロンプト」を使って、AIにGASのコードを書かせます。
  3. スプレッドシートに貼り付け
    スプレッドシートのメニュー「拡張機能」→「Apps Script」をクリックします。
    エディタが開くので、もともと書いてある文字を消して、AIが書いたコードを貼り付け、保存(フロッピーアイコン)します。 (ここにApps Scriptのエディタ画面にコードを貼り付けたスクショを貼る)

【状況別】コピペで使えるプロンプト集

作りたいツールの複雑さに合わせて使い分けてください。
以下のテキストをコピーして、AIに送るだけです。

パターン1:【基本】特定の処理専用の関数を作る

「要約するだけ」「翻訳するだけ」といった、用途が決まっているシンプルな関数が欲しい時に。

Google Apps Script (GAS) を使って、OpenAI APIを呼び出すカスタム関数を作りたいです。

・やりたいこと:引数として渡されたテキストを「3行で要約」して返す。
・関数名:`=SUMMARIZE_TEXT(セル)` のように使えるようにする。
・モデル:`gpt-3.5-turbo`(またはgpt-4o)を使用。
・APIキー:コード内の変数 `API_KEY` に直接書き込む形でOK(※自分専用のため)。

そのままコピペして使えるコードを書いてください。

パターン2:【詳細】指示内容もセルから指定したい

「翻訳して」「アイデアを出して」など、指示(プロンプト)もスプレッドシート上で自由に変えたい時に。

汎用的なAI関数を作りたいです。
`=AI_GENERATE(プロンプト, 対象セル)` のように、第一引数に「命令文」、第二引数に「処理するテキスト」を渡せる関数をGASで書いてください。

例:`=AI_GENERATE("以下の文章を英語に翻訳して", A2)`

APIキーはスクリプトプロパティから取得する安全な設計にしてください。

パターン3:【応用】メニューバーから一括実行するボタン

関数だと再計算で重くなるため、ボタンを押した時だけ実行するようにしたい時に。

スプレッドシートのメニューバーに「AIツール」というメニューを追加し、そこから「選択範囲を要約」を実行できるスクリプトを書いてください。

・動作:選択しているセルの内容を読み取り、その「右隣のセル」に要約を出力する。
・処理:複数セルが選択されている場合は、1つずつ順番に処理する。
・APIエラー対策:エラーが出ても止まらずに「エラー」と出力して次へ進むようにする。

実行結果のイメージ

パターン1(基本)のコードを貼り付けた後、スプレッドシートに戻って関数を入力するとどうなるか見てみましょう。

🤖 スプレッドシート上の操作:

A列に長いニュース記事のテキストが入っているとします。
B列のセルに、以下のように入力します。

=SUMMARIZE_TEXT(A2)

エンターキーを押すと、セルに「Loading…」と表示され、数秒後……

✨ 結果:
A2セルの文章が見事に3行に要約されたテキストに変わります!
あとはセルの右下をダブルクリックしてオートフィルすれば、100行でも1000行でも、一気にAIが処理してくれます。

うまくいかない時は?(修正のコツ)

GASはエラーが出やすい部分ですが、AIにエラー文を見せれば解決します。

ケース1:エラー「Exceeded maximum execution time」
処理時間が長すぎると出るエラーです。
→「タイムアウトエラーが出ました。一度に処理する件数を制限するか、処理を軽くする方法を教えて」と相談しましょう。

ケース2:エラー「You exceeded your current quota」
OpenAI APIの利用枠(課金設定)の問題です。
→ OpenAIの管理画面で、クレジットカードが登録されているか、残高があるかを確認してください。

ケース3:コードの貼り付け場所がわからない
→「Apps Scriptのエディタ画面のどこに貼ればいい? 画像付きで解説しているサイトはある?」と聞いてみましょう。

関連リンク・まとめ

今回使用するサービスはこちらです。

「エンジニアじゃないからシステム開発なんてできない」という常識は崩れました。
AIにコードを書かせれば、文系の方でも、自分だけの業務効率化ツールを開発できます。

スプレッドシートがAIの頭脳を手に入れたとき、あなたの仕事の生産性は劇的に向上します。
ぜひ、小さな自動化からチャレンジしてみてください。



※本ブログはこの一文以外は、AIによる記載です。内容にウソが含まれている可能性がありますので、ご注意ください。写真もAIで作成しています。

迷子探偵やもやも [AI]

探偵はいつも迷子ですw