🐷

Excelマクロで仕事効率化(初心者向け)(5) | ChatGPTの利用

2024/08/07に公開

はじめに

実際にVBAマクロのプログラミングをして、ChatGPTに質問を投げて、それが返ってくるツールを作ろうと思います。
これ自体は、ChatGPTCopilot(Microsoft社)のWebブラウザからでも同様のことができます。
 ただ、今後ChatGPTのAPIから結果を受け取り、その結果を基に例えば自動的に計算表を作成したり、ファイルを自動的にメール送信するなど、幅広い「自動化」を実現することができます。
 それでは、プログラミングを進めて行きます!と、言いたいところなのですが、その前に基本的なことを抑えておく必要があります。今回はプログラミングの前に押さえておくべき基本的なことについて説明します。

押さえておくべき基本的なこと

以下、押さえておくべき基本的なことです。
これらの項目についての詳細は、次の章以降で説明します。

項目 説明
API API(アプリケーションプログラミングインターフェース)とは、異なるソフトウェアが互いに通信し、機能を共有するためのルールやプロトコルの集合です。例えば、天気アプリが天気情報を取得するために気象データ提供サービスのAPIを利用します。APIは、開発者が既存の機能を簡単に利用できるようにし、新しいソフトウェアの開発を効率化します。
JSON JSON(JavaScript Object Notation)とは、データを軽量かつ人間が読み書きしやすい形式で表現するためのフォーマットです。主にデータの送受信や保存に使われます。JSONはキーと値のペアで構成され、配列やオブジェクトをサポートします。例えば、ウェブアプリケーションがサーバーとデータをやり取りする際によく使用されます。
ChatGPT API OpenAIが提供するChatGPTモデルを使った対話や自然言語処理をアプリケーションに統合するためのインターフェースです。このAPIを利用することで、開発者は自分のアプリやサービスにChatGPTの機能を組み込むことができます。例えば、カスタマーサポートの自動応答、チャットボット、言語翻訳などの機能を実装できます。

いかがでしょうか?これはChatGPTに質問した結果をそのまま載せたものなのですが、何となくは分かるかもしれませんが、とにかく言い回しがややこしいですね。
次の章からは、これら3つについてもう少し噛み砕いて説明をします。

APIとは

APIとは、装置間でやり取りするためのルールです。APIにはいろいろなものがあるのですが、ここでは「httpsプロトコル」について説明をします。「httpsプロトコル」は、Webブラウザにhtmlファイルの情報などを表示させたりする際に使用しており、APIでは装置間の会話で利用しています。

image.png

具体的に図で示します。左のシステムから右のシステムに対してリクエストを送信します。これは、LANケーブルや無線LANを通って右のシステムに到達します。

リクエスト送信

ここでは、送信リクエストはhttpsとして説明します。
httpsはヘッダー部分ボディ部分に分かれています。

ヘッダ
https://www.****.co.jp/?user_name=user&age=20

ヘッダは上記のような文字列で、ブラウザ上部のURL表示ボックスでも見たことがあるかと思います。
www.****.co.jpFQDNと言って、一般的に言われている「ドメイン名」の一種で、サーバを特定するアドレスと思ってもらえばよいです。
また、その右部に?user_name=user&age=20とあります。これは「パラメータ」と言って「?」より右に記載されます。「パラメータ名」と「パラメータ値」が「=」でつながれており、それがセットになっています。ここでは「ユーザ名はuserで、年齢は20歳」ということになります。

ボディ

図にBODYという記載があります。これはヘッダと一緒にLANを伝わってデータが送られるのですが、人が表面的には見ることができません。右のシステムではリクエストを受ける際に、BODYの情報をCookieなど、人が直接見られないように格納します。
httpに対してhttpsはセキュアな通信であり、httpsの場合BODY部分は暗号化され、第三者に盗み見られることは無くなります。ですので、重要な情報はこのBODYの中に入れて送信することが多いです。

レスポンス受信

左のシステムは、レスポンスを受信します(図では下部のJSONが該当)。この時後ほど説明しますが、JSON形式で受け取ることになります。「グラフ構造」(樹形図やトーナメントのようなツリー構造)が得意で、親子関係を上手く表現することができます。一方、CSVファイルやデータベースでは表形式であり、「グラフ構造」を表見するのは不得意です。

JSON とは

先ほどの図の中にあるJSONのサンプルを用いて図式化します。

image.png

左側のJSON形式のデータを、右側に模式化しています。
先ほどお伝えした通り、JSONは「グラフ構造」になっていることが分かります。
このデータは「名前がJohn Doeで、30歳、学生ではなく、成績はまずまず、それから住所はAnyton市の123メインストリートでzip番号が12345」といった感じでしょうか。

ChatGPT API を利用する

次にChatGPT APIの利用がでるようにするための操作について説明します。
CHatGPTのAPIを利用できるようにするには、ChatAPTのサイト( https://platform.openai.com/ )からユーザ登録とクレジットカードの登録をする必要があります。それが完了して初めて利用することができます。

以下に、その手順を示します。

image.png
ChatGPTのプラットフォーム画面が表示されたら、右上のSign Upボタンを押下します。

image.png
「アカウントの作成」という画面が表示されます。

image.png
この画面にメールアドレスとパスワードを入力します。パスワードは「長さ12文字以上」が必要です。「続ける」ボタンを押下します。

image.png
「メールを検証する」画面が表示されます。登録したメールアドレスにChatGPTからメールが届きます。

image.png
届いたメールを開き、「メールアドレスの確認」ボタンを押下します。
これで電子メールアドレスが完全に紐づけられました。

image.png
「ご自身についいて教えてください」画面が表示されるので、「氏名」「組織名(オプション)」「生年月日」(DD/MM/YYYY形式)を入力し、「同意する」ボタンを押下します。

image.png
プラットフォーム画面に戻りますので、右上の「Dashboard」ボタンを押下してください。

image.png
そうすると、管理画面が出てきますので、左側の「API keys」ボタンを押下して、APIを作成します。

image.png
そうすると「API keys」画面が表示されます。右上の「Start verification」ボタンを押下します。

image.png
電話番号入力画面が表示されるので、電話番号を入力します。ショートメールの返信が受けられるように、スマートフォンの電話番号を入力します。入力は「090-・・・」ではなく最初の「0」を省いて、「90-・・・・・」と入力するようにしてください。
「Send code」ボタンを押下すると、スマートフォンのショートメールにコードが届きます。

image.png
届いた6桁のコードを入力します。すると次の画面に遷移します。

image.png
「A note on credits」という画面が表示されます。「Continue」ボタンを押下すると実際にクレジットカード情報を登録する画面に移ります。ここではセキュリティ上画面を掲載するのは控えました。

image.png
クレジットカード情報を登録すると、「Create new secret key」画面に遷移します。
上段にAPI keyの名前を入れてください。下段は「Default project」のままで結構です。
「Create secret key」ボタンを押下して、API keyを作成します。

image.png
「Save your key」画面にkeyが表示されます。(ここではsk-projから始まる文字列)
「Copy」ボタンを押下して、何か別のテキストファイルなどに張り付けて保存しておきます。
そうしなければこのkeyは二度と確認することができなくなります。
最後に「Done」ボタンを押下します。

image.png
赤枠で示した通り、API keyが作成されていることが分かります。
これで、ExcelマクロでAPI keyを利用することができるようになります。

おわりに

今回はExcel VBAマクロでChatGPT APIを利用できるようにするため、ChatGPTにメールアドレス・携帯電話番号、それからクレジットカード情報を登録し、API keyが作成されるところまで確認をしました。
次回は、VBAマクロのプログラミングをして実際に生成AIと会話をしていきます。

Discussion