見出し画像

【生成AI×GAS】メール配信GASコードを修正する

オレンジピーチのトシです。
 今回は、前回の記事で作成したメールを送信するGASが、思っていた動きをしていないため、このコードを修正していきます。
複雑な内容を生成AIを用いてコード作成すると、思ったように動かない場合もあります。私の言語化能力の問題もあるのですが(笑)
一度で、諦めてしまうのではなく、生成AIを利用して、原因を特定して、修正する方法を理解頂けたらHappyです。


問題の原因を究明する。

まずは原因を究明するために、前回の記事で作成したGASを読んでみます。

 1行ずつ読んでいくと、「「2列目2行目に入っているメールアドレス情報を取得」とあります。

 コードも、sheet.getRange(2,2).getValue(); となっています。
これは、過去に紹介した、単一のセルをコピーする場合の値の取り方です。
(過去の記事を読みたい人は、こちらからどうぞ)

 ここで、2列目2行目のメールアドレスしか取得していないことが、原因のようです。この点を、生成AIに修正してもらおうと思います。
今回も、生成AIとして、Microsoft Bing Copilot を利用します。

生成AIを利用してGASコードを修正する。

生成AIは、同じ質問をしても、異なる回答が返ってくることが多いので、もしこの記事をご覧になって、同じように質問しても、違う回答となるかもしれません。
以降の記事は、今回、実施した内容を記載します。

 今回は、コードも短いので、生成AIに全文を与えて修正を指示しました。

 回答として生成されたコードは次の通りです。

コピーできるように、コードも貼っておきます。

function myFunction() {
  const ss = SpreadsheetApp.openByUrl("スプレッドシートのURL"); // スプレッドシートのURLを指定
  const sheet = ss.getSheetByName("配信先メールアドレス"); // シート名を指定
  const lastRow = sheet.getLastRow(); // 最終行を取得
  const recipientRange = sheet.getRange(2, 2, lastRow - 1, 1); // 2列目2行目から最終行までの範囲を取得
  const recipients = recipientRange.getValues(); // メールアドレス情報を取得
  const subject = "スプレッドシートの送信"; // 件名
  const body = "みなさん、お疲れ様です。\nスプレッドシートへの転記が終了しましたので、リンクを送信します。\nリンク:******"; // 本文を入力
  GmailApp.sendEmail(recipients, subject, body); // Gmailアプリを起動してメールを送信
}

修正したGASを実行する。

 生成したGASコードをコピーして、エディタに貼り付けて実行しました。
("スプレッドシートのURL" の箇所は、実際のスプレッドシートのURLに置き換えます。)
 実行した結果、スプレッドシートに記載のメールアドレス全てを宛先として、メールを送信することが出来ました。

送信されたメール

まとめ

 今回は、生成AIを使って書いたGASを、同じく生成AIを用いて修正する方法を紹介しました。
 複雑な指示になってくると、内容が伝わらず、違う結果が得られたり、コードがエラーになったりすることも発生します。
 そのようなときも、今回のように、生成AIに修正を指示することで、狙いのGASを作ることが出来ます。
 次回は、今回作成したGASを解説したいと思います。

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

この記事が少しでもお役に立てたのなら、サポートいただけると嬉しいです。頂いたご支援は、今後の活動費やコンテンツの質向上に使わせていただきます。