見出し画像

生成AIでGASを書く

オレンジピーチのトシです。
今回は、「生成AIでGASのコードを書く」ことを紹介したいと思います。

noteをはじめて、まだ3記事目なのですが、一番書きたかった記事の一つである『GAS×生成AI』の大きな可能性についてお話ししたいと思います。

生成AIって何なの?、GASって何なの?といったイメージをも持っている人にこそ読んで頂きたい内容で、あなたの目に留まればうれしいです。

GASと生成AIが、むちゃくちゃ相性が良い!

 ChatGPTの登場以来、爆発的な進化を遂げている生成AIですが、みなさん生成AIをどのように仕事に活かしたらよいか分からないと、困っていたりしませんか?
 私も試行錯誤を続けている最中ですが、その中で見つけた一つの活用法が、生成AIにGASを書いてもらうことです。
 実際にやってみると、とても役に立ちます! 生産性爆上げです!
一言で表現すると、「GASと生成AIは、むちゃくちゃ相性が良い!」
 興味をもって頂いた人は、ぜひ記事を読み進めてみてください。

GASの知識がなくても、GASが書ける

 「そうは言っても、GASも生成AIもよく分からないし、難しいんじゃないの?」、そう思われた人にこそ、続きを読んで頂きたいです。
 事前の知識は必要ありません。ちょっとした興味があれば、試すことが出来ます。
 (もちろん、GASの知識や生成AIに関する知識があるに越したことはありません。あった方が、よりスムーズに理解できますし、つまづくことも少なくなります。けど、私は、最初から知識のある人なんていないし、興味のあるところから試してみてみるのが良いと思います。)
 GASについてのちょっとした知識は、リンクの記事にまとめていますので、よかったら読んで見てください。

実際に、生成AIに書いてもらった!

実際に、生成AIにGASを書いてもらいました。
その流れに沿って説明していきます。
(とても簡単な内容なので、「手作業で計算した方が早いよね」といったレベルですが、流れを理解してもらうために、あえて簡単な題材にしました。)

【注意点: 会社の業務で使用する際には、生成AIの利用規定などを定めているところが多いと思いますので、事前に確認をお願いします。
また、念のため個人情報、機密情報などは、生成AIには読み込ませないようにして下さい。】

1.プログラムの目的:

今回は、スプレッドシートにあるデータから、指定の条件に合う値を取り出し、その「合計値」を計算してもらいます。
売上表の中から4月に該当する売上の合計を計算してみたいと思います。

2.スプレッドシートの準備:

元になるデータを準備します。今回は次のようなデータを準備しました。
イメージとしては売上表で、月、品目、金額などが記載されています。

元になるスプレッドシートのデータ

3.CSV形式で、データをダウンロードする:

 次に、生成AIにデータを読み込ませるため、スプレッドシートからダウンロードします。
 メニューバーの「ファイル」から「ダウンロード」を選び、「カンマ区切り形式(.csv)」をクリックします。

スプレッドシートの内容をダウンロード

 ダウンロード出来たファイルを開きます。(メモ帳などで開けます)
「,(カンマ)」で区切られたデータを、クリップボードにコピーします。
(ショートカットキー:ctrl+a (全選択)と、ctrl+c(コピー) を使うと良いです)

ダウンロードしたCSVファイル

4.生成AI(Bing Copilot)に指示を出す:

 次に、生成AIに指示を出します。今回はMicrosoft Bing Copilot を利用しました。(Open AI の ChatGPT や Google の Gemini などでも、ほとんど同じやり取りで、GASが作成できると思います)

 指示を出した内容は、次の通りです。
今回は、4月の金額を合計したいので、「4月」を指定して指示を出しています。指示が書けたら三角形の矢印ボタンを押します。

次のようなCSVファイルがあります。
スプレッドシートにこのデータがあるとき、4月の金額合計を計算するGASを作成してください。
月,品目コード,品目,単価(円/kg),数量(kg),金額(円)
4月,a0001,りんご,594,2,1188
4月,a0002,みかん,518,3,1554
5月,a0001,りんご,573,3,1719
5月,a0002,みかん,458,4,1832
5月,a0003,もも,2196,3,6588

生成AI(Bing Copilot)への指示内容
copilotに指示を出す

 生成AIへの指示の出し方に決まりはありません。私は、なるべき簡潔な指示を明確に書くことを心がけています。
 このような指示(プロンプト)の出し方は、多くの方がさまざまな方法を発信していますが、最初の段階ではそこまで気にする必要はないと思います。

5.生成AI(Bing Copilot)から回答を受け取る:

 矢印ボタンを押すと、すぐに回答を考えてくれます。
実行中のタスクを見ると、「4月の金額合計を計算するGoogle Apps Script (GAS) を生成します。」とあるので、指示は伝わっているようです。

回答中のcopilot

 しばらくすると、生成AI(Bing Copilot)がGASを作成してくれました。
表示には JavaScript とありますが、GASはJavaScriptベースのプログラム言語のため、このような回答になることが多いです。間違いではありません。

copilotが生成したGAS

 生成されたGASコードをコピーします。
画面の右上の「コピー」アイコンをクリックすると、コードをコピーできます。

ボタンを押してコードをコピー
function calculateAprilTotal() {
    var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
    var sheet = spreadsheet.getSheetByName('シート名'); // シート名を適切に指定してください

    // データを取得
    var data = sheet.getDataRange().getValues();

    // 4月のデータをフィルタリング
    var aprilData = data.filter(function(row) {
        return row[0] === '4月'; // 月の列が'4月'の行を抽出
    });

    // 金額の合計を計算
    var totalAmountApril = aprilData.reduce(function(sum, row) {
        return sum + row[5]; // 金額の列は0から数えて5番目
    }, 0);

    Logger.log('4月の金額合計は ' + totalAmountApril + ' 円です。');
}

さらに、生成AI(Bing Copilot)からのメッセージが続いています。

copilotからのメッセージ

内容を読むと、次のような内容です。

  • このスクリプトをGoogle Apps Scriptエディタに貼り付ける

  • 適切なシート名を指定する

  • スクリプトを実行する

  • すると、4月の合計金額がログに表示させる

 その上、「ご不明点があればお知らせください。」との親切さ。
早速、順に進めていきたいと思います。

6.GAS(Google Apps Script)を作成する:

 生成AI(Bing Copilot)に考えてもらったGASを、エディタで作成します。
元のスプレッドシートに戻って、GASのエディタを開きます。
手順としては、上部メニューの「拡張機能」から「Apps Script」をクリックします。

GASのエディタを開く

 新しいエディタ画面が表示されますので、ここに生成AI(Bing Copilot)が書いたコードをコピペします。
手順としては、開いたエディタ画面には、1~3行目にデフォルトのコードが書かれているので、それを削除して、生成AIが書いたコードを貼り付けます。
(手順5でコードをコピーしているので、ショートカットキー:ctrl+a (全選択)と、ctrl+v(貼り付け) を使うと良いです)

新規のGASエディタ画面

 貼り付けが出来たら、一部のコードを修正します。
前述の生成AI(Bing Copilot)からのメッセージの次の部分を修正します。

適切なシート名を指定してください。

生成AI(Bing Copilot)からのメッセージ

 エディタを見ると、3行目に「シート名を適切に指定してください」との注意書きがあります。このシート名を修正します。
具体的には、3行目の 「'シート名'」の記述を、対象のスプレッドシートのシート名である「'シート1'」に書き換えます。
(修正の理由などは、追々、別のnoteで書きたいと思います)

シート名を ’シート1'に書き換える

 修正が終わったコードは次のようなものです。

修正が終わったGAS

7.GAS(Google Apps Script)を実行する:

 ここまで作成したGASを保存します。
エディタの上部メニューの「保存」をクリックします。

を保存する

 いよいよGASを実行します。
保存ボタンの横にある「実行」をクリックします。

GASを実行する

 実行が始まると、Googleが権限を尋ねてきます。
GASがあなたのデータにアクセスしたり、あなたのGoogleアカウントを用いたりすることへの確認です。
このプログラムで実行するのはスプレッドシートの数値の計算だけなので、承認を進めて問題ありません。手順は以降に示します。
(最初は、重大なことかと驚くかも知れませんが、個別のデータにアクセスする以上、必要なことですね。)
 ●まず、データへのアクセス権限について、「権限を確認」を押します。

アクセス権限の確認

 ●次に、Googleにログインするアカウントを選択します。
  自分のアカウントを選んでクリックします。

 ●すると、「このアプリはGoogleで確認されていません」との表示されます。

アプリの警告表示


 ●ここでのアプリとは、作成したGASのことです。
  自分で作成したので、Googleが確認していないのは当然です。
  ここで、左下にある「詳細」の文字をクリックします。

詳細をクリック

 ●詳細な注意書きが表示されます。
  自分で作ったGASなのだから、リスクを理解して続行してくださいね。ということです。
  今回は、スプレッドシートのデータを合計するだけなので、危険性はありません。
  左下の「無題のプロジェクト(安全ではないページ)に移動」をクリックしてください。

詳細表示を開き、安全ではないページに移動

 ●次に、Googleアカウントへのリクエストを許可します。
  GASがスプレッドシートを参照したりすることを許可します。

 ●これで、権限の設定が完了しました。
  もう一度、GASエディタの「実行」ボタンを押します。

実行ボタンをクリック

すると、実行ログの中に、計算結果が表示されました。
今回のプログラムでのGASの動作としては、以上になります。

GASの実行結果

8.実行結果の確認

あらためて、実行結果を確認してみましょう。
今回実施したい内容は、
「売上表の中から4月に該当する売上の合計を計算する」でした。
4月の売上は、りんごの1,188円と、みかんの1,554円です。

     1,188 + 1,554 = 2,742

GASの「4月の金額合計」と合っています。
生成AIが正しく動くGASを作成してくれたことが分かります。

元のスプレッドシートデータ
GAS実行結果

まとめ

今回は、生成AIでGASのコードを書くための、一連の流れを紹介しました。
ここまで読んで頂いた人が、イメージだけでも掴んで頂けたらHappyです!

内容としては、2つの金額を足し合わせるだけの作業でした。
しかし、プログラミングの知識を用いることなく、生成AIを利用して、正常に動くGASを作ることが出来ました。

実際に、ご自身でスプレッドシートにデータを作って、生成AIに読みませてみると、より良い体感につながると思います。

途中、「権限の承認」など、はじめて見ると心配になるような箇所もあったと思いますが、プログラムの知識がなくても、生成AIと対話をすることで、実際に使えるGASを作成することが出来ます。
もっともっと複雑な内容を、生成AIと一緒に作ることが出来ます。
もし、GASがうまく動かないといった際も、生成AIの力を借りることで、問題を解決することも出来ます。

しかし、今回は記事のボリュームの関係で、省いてしまった箇所もたくさんあります。(スクリプトに名前を付けたり、結果を出力したり。)
このあたりの内容は、別のnoteで紹介したいと思っています。
今後も、少しずつでも、GASやGoogle Workspaceを用いた業務自動化・効率化について発信していきます。

最後まで、読んで頂きありがとうございました。


この記事が気に入ったらサポートをしてみませんか?