AI下手でもChatGPTを力づくで使ってGASを設計できた話
こんにちは!ペパボに入社して2年目のmonがお送りします。
この記事はPepabo CS Advent Calendar 2023の7日目の記事です。
昨日は、同じチームで働く先輩のなっちょさんがタイトルの破天荒さからは想像つかないめちゃめちゃ今の私に突き刺さる(絶賛評価追い込まれ中)評価についてのアウトプットでした。
翌年の私に再度記事を読むようにリマインド仕込みました。
さて、やっと本題に入ります。
今年は何を書こうかと思った時に頭に浮かんだのは、chatGPTと仲良くなろうと頑張ったな〜と思い出しました。
なので今年は、AI下手な私でもパワープレイでなんとか理想とするGASを設計できた話を書きます。パワー!!!
何をしたのか
Google Apps Script (GAS) を使用して、「SUZURI CSのシフト」というスプレッドシートから特定のシフトデータを別のシートに自動的にコピーできるようにした。
常に最新の状態に保つためにトリガを設定し毎日朝8:00に更新されるようにした
引用元データの氏名と一致する情報をコピペするようにしたから人の増減があっても引用先ファイルにその人の名前を削除・追加するだけで反映されるようになった
自動化しようと思った理由
IMPORTRANGE関数がとにかく煩わしかったから
人の増減などがあり引用元のセルが一つずれるだけで反映されなくなる
所属人数✖️1ヶ月分、全てのセルに関数が入っててシートが重くて開きづらい
もっと楽にシフトコピーして最新の状態を保ち、毎月の修正作業を少しでも減らせないか?と考えました。
そうだ!GAS設定すればスクリプトの引用元・先のシート名を変更するだけで修正できるじゃん!
しかも、シートも数式過多で重かったけど軽くなるし一石二鳥〜と思ったのも束の間いかんせんスクリプトが書けない!
そんな知識ないのでGPTに作ってもらうことにしました。
私のchatGPTの前提知識
プロンプトってのを書かなきゃあかん
具体的に作成してほしい内容を書かないとあかんらしい
とりあえずchatGPT使ってみた
最初の指示内容
結果
それっぽいスクリプトができたけど実際にApps scriptに当てはめてみるとエラーできちんと機能せず
ファイル名やシート名とか自身が使っているものに変えなければいけなくて大変・変更漏れがあったりした
気づき
最初からファイル名やシート名を指定して作って貰えばいいじゃん
2回目の指示内容
結果
使えるスクリプトが作成できたぽいけどやっぱりエラーが発生する
しかもそのエラー内容がよくわかんないから改善もできない
気づき
エラー内容もそのままGPTに伝えてエラーを解消したスクリプトを作成して貰えばいいじゃん
エラー内容も原因分析もGPTにやって貰えばいいじゃん
パワーで解決
エラーがでたらそのままエラーごとぶん投げる!
繰り返してったら最後には完成するのでは??(脳筋の考え)
それ以降3回ほどチャレンジしてはエラーの状況が続きましたが、その都度GPTにエラー内容を伝えてエラー内容の説明とエラーを解消するためのスクリプトを作成してもらいました。
結果作成できたスクリプト
function copyShift() {
// スクリプトを実行するユーザーの権限でスプレッドシートを開く
var source_ss = SpreadsheetApp.openById(シートのID);
var source_sheet = source_ss.getSheetByName('202308');
// アクティブなスプレッドシートを開く
var target_ss = SpreadsheetApp.openById('シートのID'); // ←getCode()から openById()に変更
var target_sheet = target_ss.getSheetByName('★202308');
// 名前が一致する行のシフトをコピーする
for (var i = 10; i <= 20; i++) {
var name = source_sheet.getRange('I' + i).getValue();
for (var j = 1; j <= target_sheet.getLastRow(); j++) {
if (target_sheet.getRange('B' + j).getValue() == name) {
var shift = source_sheet.getRange('J' + i + ':AN' + i).getValues();
target_sheet.getRange('C' + j + ':AG' + j).setValues(shift);
break;
}
}
}
}
そして、シフト反映作業をボタンで反映もできるし、毎日8:00に自動更新されるようにも設定方法もGPTにぶん投げ
自分の理想とするGASの設計をすることができました!パワー!
まとめ
GASを作成してもらう時は最初からシート名やファイル名など指示に入れておくと完成したスクリプトをコピペするだけで済む
エラーが起きたらとりあえずエラー内容ぶん投げて解決策を提示またはエラーを解消したスクリプトを作成してもらう
あとはパワー!
最後に
GPTをまだ使ったことないし難しいと思っているそこのあなた!
ちゃんとしたプロンプトをかけない私でもトライ&エラーを繰り返し理想とするGASの設計をすることができました。
AIがワイワイしている世の中取り残されていかないように、最初はパワープレイでもいいから実際に使用してみてはいかがでしょうか🥳
PS.来年は大谷翔平の話書きたいな〜
明日はECグループのスーパーマンことトムボーさん!!何を書いてくれるのか楽しみ!🎄
この記事が気に入ったらサポートをしてみませんか?