![見出し画像](https://assets.st-note.com/production/uploads/images/144523501/rectangle_large_type_2_5a0e069cdd48fb94e7d49ce6e77657be.jpeg?width=1200)
生成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.スプレッドシートの準備:
元になるデータを準備します。今回は次のようなデータを準備しました。
イメージとしては売上表で、月、品目、金額などが記載されています。
![](https://assets.st-note.com/img/1718755472657-9UONg3KUDD.jpg)
3.CSV形式で、データをダウンロードする:
次に、生成AIにデータを読み込ませるため、スプレッドシートからダウンロードします。
メニューバーの「ファイル」から「ダウンロード」を選び、「カンマ区切り形式(.csv)」をクリックします。
![](https://assets.st-note.com/img/1718756234043-yfFXVo69oQ.jpg?width=1200)
ダウンロード出来たファイルを開きます。(メモ帳などで開けます)
「,(カンマ)」で区切られたデータを、クリップボードにコピーします。
(ショートカットキー:ctrl+a (全選択)と、ctrl+c(コピー) を使うと良いです)
![](https://assets.st-note.com/img/1718756734932-segy1ximnH.jpg)
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
![](https://assets.st-note.com/img/1718757374145-8HO3j5wwGO.jpg?width=1200)
生成AIへの指示の出し方に決まりはありません。私は、なるべき簡潔な指示を明確に書くことを心がけています。
このような指示(プロンプト)の出し方は、多くの方がさまざまな方法を発信していますが、最初の段階ではそこまで気にする必要はないと思います。
5.生成AI(Bing Copilot)から回答を受け取る:
矢印ボタンを押すと、すぐに回答を考えてくれます。
実行中のタスクを見ると、「4月の金額合計を計算するGoogle Apps Script (GAS) を生成します。」とあるので、指示は伝わっているようです。
![](https://assets.st-note.com/img/1718757981127-oiMPf3dNlP.jpg?width=1200)
しばらくすると、生成AI(Bing Copilot)がGASを作成してくれました。
表示には JavaScript とありますが、GASはJavaScriptベースのプログラム言語のため、このような回答になることが多いです。間違いではありません。
![](https://assets.st-note.com/img/1718758156101-H7Yvw8n0xT.jpg?width=1200)
生成されたGASコードをコピーします。
画面の右上の「コピー」アイコンをクリックすると、コードをコピーできます。
![](https://assets.st-note.com/img/1718759946184-XlZ6lOYHar.jpg)
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)からのメッセージが続いています。
![](https://assets.st-note.com/img/1718758168175-hoghXOpKiL.jpg?width=1200)
内容を読むと、次のような内容です。
このスクリプトをGoogle Apps Scriptエディタに貼り付ける
適切なシート名を指定する
スクリプトを実行する
すると、4月の合計金額がログに表示させる
その上、「ご不明点があればお知らせください。」との親切さ。
早速、順に進めていきたいと思います。
6.GAS(Google Apps Script)を作成する:
生成AI(Bing Copilot)に考えてもらったGASを、エディタで作成します。
元のスプレッドシートに戻って、GASのエディタを開きます。
手順としては、上部メニューの「拡張機能」から「Apps Script」をクリックします。
![](https://assets.st-note.com/img/1718759054070-crInMYzGhg.jpg)
新しいエディタ画面が表示されますので、ここに生成AI(Bing Copilot)が書いたコードをコピペします。
手順としては、開いたエディタ画面には、1~3行目にデフォルトのコードが書かれているので、それを削除して、生成AIが書いたコードを貼り付けます。
(手順5でコードをコピーしているので、ショートカットキー:ctrl+a (全選択)と、ctrl+v(貼り付け) を使うと良いです)
![](https://assets.st-note.com/img/1718759631904-BMy5FjPbeT.jpg?width=1200)
貼り付けが出来たら、一部のコードを修正します。
前述の生成AI(Bing Copilot)からのメッセージの次の部分を修正します。
適切なシート名を指定してください。
エディタを見ると、3行目に「シート名を適切に指定してください」との注意書きがあります。このシート名を修正します。
具体的には、3行目の 「'シート名'」の記述を、対象のスプレッドシートのシート名である「'シート1'」に書き換えます。
(修正の理由などは、追々、別のnoteで書きたいと思います)
![](https://assets.st-note.com/img/1718760837780-BxxdE3yCfo.jpg)
修正が終わったコードは次のようなものです。
![](https://assets.st-note.com/img/1718760293607-HrB6Dv31Gm.jpg)
7.GAS(Google Apps Script)を実行する:
ここまで作成したGASを保存します。
エディタの上部メニューの「保存」をクリックします。
![](https://assets.st-note.com/img/1718761442506-p34ljFYQyx.png)
いよいよGASを実行します。
保存ボタンの横にある「実行」をクリックします。
![](https://assets.st-note.com/img/1718771397687-cPiLPhGSW8.png)
実行が始まると、Googleが権限を尋ねてきます。
GASがあなたのデータにアクセスしたり、あなたのGoogleアカウントを用いたりすることへの確認です。
このプログラムで実行するのはスプレッドシートの数値の計算だけなので、承認を進めて問題ありません。手順は以降に示します。
(最初は、重大なことかと驚くかも知れませんが、個別のデータにアクセスする以上、必要なことですね。)
●まず、データへのアクセス権限について、「権限を確認」を押します。
![](https://assets.st-note.com/img/1718772402661-BaJI2c2G6C.jpg?width=1200)
●次に、Googleにログインするアカウントを選択します。
自分のアカウントを選んでクリックします。
![](https://assets.st-note.com/img/1718772353989-gNTJHI5G2N.png)
●すると、「このアプリはGoogleで確認されていません」との表示されます。
![](https://assets.st-note.com/img/1718773068949-RaOK9tMFsy.jpg?width=1200)
●ここでのアプリとは、作成したGASのことです。
自分で作成したので、Googleが確認していないのは当然です。
ここで、左下にある「詳細」の文字をクリックします。
![](https://assets.st-note.com/img/1718773148330-UDyiU9YjUI.jpg?width=1200)
●詳細な注意書きが表示されます。
自分で作ったGASなのだから、リスクを理解して続行してくださいね。ということです。
今回は、スプレッドシートのデータを合計するだけなので、危険性はありません。
左下の「無題のプロジェクト(安全ではないページ)に移動」をクリックしてください。
![](https://assets.st-note.com/img/1718773623742-uxQl6flHmJ.jpg?width=1200)
●次に、Googleアカウントへのリクエストを許可します。
GASがスプレッドシートを参照したりすることを許可します。
![](https://assets.st-note.com/img/1718773637581-rhaVITDYnK.jpg)
●これで、権限の設定が完了しました。
もう一度、GASエディタの「実行」ボタンを押します。
![](https://assets.st-note.com/img/1718773936538-eu7BEL4lDg.jpg)
すると、実行ログの中に、計算結果が表示されました。
今回のプログラムでのGASの動作としては、以上になります。
![](https://assets.st-note.com/img/1718774209602-zokJReJ7tg.jpg?width=1200)
8.実行結果の確認
あらためて、実行結果を確認してみましょう。
今回実施したい内容は、
「売上表の中から4月に該当する売上の合計を計算する」でした。
4月の売上は、りんごの1,188円と、みかんの1,554円です。
1,188 + 1,554 = 2,742
GASの「4月の金額合計」と合っています。
生成AIが正しく動くGASを作成してくれたことが分かります。
![](https://assets.st-note.com/img/1718774523010-GjJuagX3IZ.jpg)
![](https://assets.st-note.com/img/1718774352316-9jApVTODD7.jpg)
まとめ
今回は、生成AIでGASのコードを書くための、一連の流れを紹介しました。
ここまで読んで頂いた人が、イメージだけでも掴んで頂けたらHappyです!
内容としては、2つの金額を足し合わせるだけの作業でした。
しかし、プログラミングの知識を用いることなく、生成AIを利用して、正常に動くGASを作ることが出来ました。
実際に、ご自身でスプレッドシートにデータを作って、生成AIに読みませてみると、より良い体感につながると思います。
途中、「権限の承認」など、はじめて見ると心配になるような箇所もあったと思いますが、プログラムの知識がなくても、生成AIと対話をすることで、実際に使えるGASを作成することが出来ます。
もっともっと複雑な内容を、生成AIと一緒に作ることが出来ます。
もし、GASがうまく動かないといった際も、生成AIの力を借りることで、問題を解決することも出来ます。
しかし、今回は記事のボリュームの関係で、省いてしまった箇所もたくさんあります。(スクリプトに名前を付けたり、結果を出力したり。)
このあたりの内容は、別のnoteで紹介したいと思っています。
今後も、少しずつでも、GASやGoogle Workspaceを用いた業務自動化・効率化について発信していきます。
最後まで、読んで頂きありがとうございました。
この記事が気に入ったらサポートをしてみませんか?