ExcelでChatGPTを利用する方法(Power Automate)

2023年3月11日

English version.

Power Automate(クラウドフロー)を利用して、ExcelからChatGPTを利用する方法を紹介します。

この方法はVBA・マクロを利用する方法と違い、Excel Onlineからも利用可能ですが、SharePointかOneDriveにExcelファイルを保存する必要があります。

BGM

手順

アドインを導入

アプリケーション(デスクトップ)かOnline(Web)で、ChatGPTを利用する方にアドインを導入する必要があります。両方で利用する場合は、両方にアドインを導入します。どちらも手順は同じです。

まずExcelのメニューの「挿入」より「Officeアドインを入手」を選択します。

「ストア」より「Microsoft Power Automate for Excel」の「追加」を選択します。

(上から4番目ほどにあります)

「続行」を選択します。この部分が終わればアドイン導入は完了です。

作成

Excelブック

「query」と「answer」という名前の列を持つテーブルを作成します。

それには新しいExcelファイルを作成し、「query」と「answer」の値を持つセル選択し、「ホーム」より「テーブルとして書式設定」をクリックします。そして任意の書式を選択します。

「先頭行をテーブルの見出しとして使用する」をチェックして「OK」ボタンをクリックします。

セル範囲の書式が変わり、その範囲のセルを選択した時に「テーブル デザイン」が表示されればテーブル化されています。

このExcelファイルをSharePointかOneDriveに保存します。

Power Automate クラウドフロー

ブラウザでPower Automateの管理画面に移動するか、「データ」、「Flow」、「Microsoft Power Automate」をクリックします。

「マイ フロー」、「新しいフロー」、「インスタント クラウド フロー」をクリックします。

「選択した行」をクリックしてから、「作成」ボタンをクリックします。

選択した行」の中に先ほど保存したExcelファイルの情報を入力します。テーブル名は変更していなければ「テーブル1」になっています。

Excelファイルの情報を入力したら、「入力の追加」をクリックします。

「テキスト」をクリックします。

左側の欄を「問い合わせ」に変更します。

ChatGPTのAPIキー(シークレットキー)を取得します。

そして、新しいステップを追加し、「組み込み」、「変数」の中にある「変数を初期化する」アクションを設置します。

名前に「APY_KEY」、種類に「文字列」、「値」にAPIキーを指定します。

新しいステップを追加し、「組み込み」、「HTTP」の中にある「HTTP」アクションを設置します。

次のように設定します。

項目
方法POST
URLhttps://api.openai.com/v1/completions
ヘッダー 1行目 左Content-Type
ヘッダー 1行目 右application/json
ヘッダー 2行目 左Authorization
ヘッダー 2行目 右Bearer @{variables('APY_KEY')}
本文{
"model": "text-davinci-003",
"prompt": @{triggerBody()['text']},
"max_tokens": 2024,
"temperature": 0,
"top_p": 1
}

新しいステップを追加し、「標準」、「Excel Online」の中にある「表に行を追加」アクションを設置します。

次のように設定します。

項目
場所/ドキュメント ライブラリ/ファイル/テーブル「選択した行」トリガーと同じ
query@{triggerBody()['text']}
answer下の式を指定します。
trim(body('HTTP')?['choices'][0]?['text'])

フローの設定が完了したら保存します。

そして左上をクリックしてフロー名を変更しておきましょう。このフロー名はExcelに表示されます。

利用

Excelブックを開いて、テーブルのセル範囲の何れかを選択し、「データ」の「Flow」をクリックします。

フロー名の実行ボタンをクリックします。この実行ボタンはテーブルのセル範囲を選択していないとクリックできません。

「問い合わせ」欄が表示されるので、ChatGPTへのメッセージを入力して「フローの実行」ボタンをクリックします。

ChatGPTへの問い合わせが始まります。「フロー実行ページ」をクリックすると状況を確認できます。

ChatGPTからの回答があるとテーブルに問い合わせと回答を持つ行が追加されます。

この問い合わせと回答は消さない限り、下に行追加されていきます。