CursorのようにGASをコーディングできるエディタ「GASSISTANT」(ガシスタント)がリリースされ話題になっていたのでさっそく使ってみましたので所感など書きます。
GASSISTANTとは
横田大伍さん(@daigo_3_8)が開発されているAI搭載のGAS(Google Apps Script)エディタとのこと。
GASってなに?って方は下記記事を参照
さっそく使っていく
利用手順については、こちらの記事に書かれているので参照してください。
今回はTutorialということで初回ログイン時のガイドに従って作っていきたいと思います。
画面としてはこんな感じで遷移していきます。
完成したようなので「実行して自動修正」を試してみます。で、ここで問題がなければまたは問題が修正されると自動的に保存してデプロイされるようですね。
GASの方にも反映されていました。
実際にGAS上から実行してみます。
承認のダイアログが表示されるので、こちらは承認していきます。
レスポンスとしては、エラーになったので、GASSISTANTに戻って、実行して自動修正していきます。
エラーの内容を伝えて修正してもらいます。
その後、数回ほど、この作業を繰り返し、
無事に実行完了しメールも届いていました。
以下が最終的に完成したコードです。
function doGet(e) {
e = e || {}; // eがundefinedの場合に備えて初期化
const emailAddresses = e.parameter && e.parameter.emailAddresses ? e.parameter.emailAddresses.split(',') : [];
const subject = e.parameter && e.parameter.subject || 'メールの件名をここに書いてください';
const body = e.parameter && e.parameter.body || 'メール本文をここに書いてください';
sendEmails(emailAddresses, subject, body);
return ContentService.createTextOutput('Emails sent successfully.');
}
function sendEmails(emailAddresses, subject, body) {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet1');
if (!emailAddresses.length) {
// A列からメールアドレスを取得
emailAddresses = sheet.getRange('A:A').getValues().flat().filter(String);
}
emailAddresses.forEach(email => {
if (email) {
MailApp.sendEmail(email, subject, body);
}
});
logEmails(emailAddresses);
}
function logEmails(emailAddresses) {
const logSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('AI Log');
const timestamp = new Date();
emailAddresses.forEach(email => {
logSheet.appendRow([timestamp, email, 'Email sent']);
});
}
まとめ
初期設定もあわせてものの30分ほどでスプレッドシートのA列に書かれているメールアドレスにメールを送るGASが完成しました。
アイデア次第で業務効率化が捗りそうですね。
個人的にはgithubと連携できてバージョン管理ができる+Publicリポジトリをみんなで公開しあえるような機能などあると楽しそうだなと思いました。
無料の利用では300クレジットでAIとのチャットを1回行うたびに10クレジット、自動修正で20クレジットが消費されるみたいですが、今回作成したような簡単なものでしたら余裕で作れるくらいの枠なので、興味がある人は、ぜひ、試してみてください。
またGASを過去に制作したGASのツールもよろしければみて頂けると嬉しいです。