アルアカ - Arcadia Academia

Arcadia Academiaは「エンジニアリングを楽しむ」を合言葉に日本のデジタル競争力を高めることをミッションとするテックコミュニティです。

CursorのようにGASをコーディングできるエディタ『GASSISTANT』を使ってみた

Featured image of the post

CursorのようにGASをコーディングできるエディタ「GASSISTANT」(ガシスタント)がリリースされ話題になっていたのでさっそく使ってみましたので所感など書きます。

GASSISTANTとは

横田大伍さん(@daigo_3_8)が開発されているAI搭載のGAS(Google Apps Script)エディタとのこと。

GASってなに?って方は下記記事を参照

📄Arrow icon of a page linkGAS(Google Apps Script)とは

さっそく使っていく

利用手順については、こちらの記事に書かれているので参照してください。

今回はTutorialということで初回ログイン時のガイドに従って作っていきたいと思います。

Image in a image block

画面としてはこんな感じで遷移していきます。

Image in a image block
Image in a image block
Image in a image block
Image in a image block

完成したようなので「実行して自動修正」を試してみます。で、ここで問題がなければまたは問題が修正されると自動的に保存してデプロイされるようですね。

GASの方にも反映されていました。

Image in a image block

実際にGAS上から実行してみます。

Image in a image block

承認のダイアログが表示されるので、こちらは承認していきます。

レスポンスとしては、エラーになったので、GASSISTANTに戻って、実行して自動修正していきます。

Image in a image block

エラーの内容を伝えて修正してもらいます。

Image in a image block

その後、数回ほど、この作業を繰り返し、

Image in a image block

無事に実行完了しメールも届いていました。

以下が最終的に完成したコードです。

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のツールもよろしければみて頂けると嬉しいです。

📄Arrow icon of a page linkGASで古いGmailを自動削除する方法

📄Arrow icon of a page linkGASでNotionの日付プロパティを参照しGmail通知する

あなたを爆速で成長させるメンタリングプログラムはこちらから↓↓

RUNTEQ(ランテック) - 実践型Webエンジニア養成プログラミングスクールの入会