1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

トライアル&エラーが大事! 🙏コード知識ゼロでもChatGPTでできる!メール自動送信プログラム 💡

Last updated at Posted at 2023-12-28

始まりはメールから

私の仕事の始まりはメールのチェックから始まります。
いつもと変わらずメールをチェックしていると、取引先様からこんなメールが。
青と緑 陽気な葉 引用 Facebookカバー.jpg

実は・・・

以前から問題にはなっていて、その時は予定日の二・三日に電話でご案内をしていました。
しかし、かけるタイミングが色々な事情で難しかったり自分がうっかり忘れていたり、電話連絡をしていてもお店と業者に食い違いがあったりとうまくいかず。
結局お電話の案内はやめ、業務連絡で発信するだけになっていました。

何とかしないと!

そして今回のメール✉。
さすがにこのままではマズイ💦何とかしないと・・・。
でも電話だとタイミングが難しいし、手間がかかるし。
う~~ん、やっぱりメール✉で連絡するのが一番いいかも。できれば店舗へ予定日の1週間前と2日前で件名と本文をそれぞれ変えてCcで共同作業している同僚にも自動でメール✉を送るシステムできないかな。
Glide?LINEBot?PowerAutomate??
どれも違う気がする・・・・。
そこで以前研修でお世話になった先生に相談することに

GASの勧め

そこで勧めていただいたのが 「Google Apps Script」 通称(GAS)。
ここで問題が!
これってコードの知識がないとできないのでは💦
そうです。
GASはコードを作成し実行させる物。コード知識0の私にはかなり高い壁(というか絶壁)です。!

ChatGPTとの会話は難しい

自分ではまだコードを書けない・・・そこで以前研修でも使ったChatGPTでコードを作成をお任せできるという事を思い出しました。
ここからが長い戦いになりました。
まずはデータベースとなるスプレッドシートを作成。

そこからはChatGPTとの会話のキャッチボールのスタートです。
やりたいことは
名称未設定のデザイン (6).png

D列の日になったらG列の文を件名に張り付けてI列F列の文を本文に張り付ける。G列のアドレスをToに張り付けCCにH列とF列を張り付けてメールを送信する。
E列の日になったらE列の文を件名に張り付けてE列F列の文を本文に張り付ける。G列のアドレスをToに張り付けCCにH列とI列を張り付けてメールを送信する。

やり方は
ここに張り付けるで (1).png
だけ!
後は出てきたコードをGASに張り付けて実行してエラーが出ていたらまたそのエラー内容をChatGPTに入力してコードを書いてもらっての繰り返し。
名称未設定のデザイン (3).png

名称未設定のデザイン (2).png

それでもエラーが消えないときは質問の言葉を変えてまた同じことを繰り返しました。
続く (1).png

そして完成へ

そしてどうにか完成しました。
名称未設定のデザイン (4).png
名称未設定のデザイン (5).png

コードはこちら

function sendEmails() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var dataRange = sheet.getRange(2, 1, sheet.getLastRow() - 1, sheet.getLastColumn());
  var data = dataRange.getValues();
  var currentDate = new Date();

  for (var i = 0; i < data.length; i++) {
    // D列またはE列の日付を取得
    var dateD = new Date(data[i][3]);
    var dateE = new Date(data[i][4]);

    if (dateD.getFullYear() == currentDate.getFullYear() && dateD.getMonth() == currentDate.getMonth() && dateD.getDate() == currentDate.getDate()) {
      sendEmail(data[i][5], [data[i][11], data[i][12]], data[i][6], data[i][8], data[i][10]);
    }

    if (dateE.getFullYear() == currentDate.getFullYear() && dateE.getMonth() == currentDate.getMonth() && dateE.getDate() == currentDate.getDate()) {
      // 複数のCcアドレスを指定
      var ccAddresses = [data[i][11], data[i][12], /* さらに追加 */];
      sendEmail(data[i][5], ccAddresses, data[i][7], data[i][9], data[i][10]);
    }
  }
}

function sendEmail(to, cc, subject, body, columnK) {
  MailApp.sendEmail({
    to: to,
    cc: cc.join(','),
    subject: subject,
    body: body + '\n\n ' + columnK
  });
}

ChatGPTの便利さから学んだこと

コード知識0でもChatGPTを使えば出てきたコードを張り付けるだけでできることがたくさんあるということを学びました。
但し一度で答えがぴったり出るわけではなく、何回も言葉を変え細かく会話を繰り返すことが必要。つまりトライアル&エラーが大事であるということを学びました。
今後も失敗から学ぶことを続けていきたいです。
人生トライアル&エラー!!

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?