
教えて!ChatGPT 🙏 コード知識ゼロでもここまで出来た メール自動送信プログラム 💡
それはあるメールから始まった
私の仕事はメールのチェックから始まります。
一通りメールをチェックしていた時、お取引様からの一通のメールに目が留まりました。
それは、店舗のかごの交換に来ても準備ができてないときがあるからどうにかしてほしいというメール。
これは何とかしないと。
実は・・・
以前もこの問題は起きていて、その時は予定日の二・三日前に店舗へ電話をしていました。
しかし、かけるタイミングが色々な事情で難しかったり自分がうっかり忘れていたり、電話連絡をしていてもお店と業者に食い違いがあったりとうまくいかず。
結局お電話の案内はやめ、業務連絡で発信するだけになっていました。
今ならできるかも
そして今回のメール✉。
さすがにこのままではマズイ💦何とかしないと・・・。
でも電話だとタイミングが難しいし、手間がかかるし。
う~~ん、やっぱり✉で連絡するのが一番いいかも。できれば店舗へ予定日の1週間前と2日前で件名と本文をそれぞれ変えてCcで共同作業している同僚にも自動でメール✉を送るシステムできないかな。
Glide?LINEBot?PowerAutomate??
どれも違う気がする・・・・。
そこで以前研修でお世話になった先生に相談することに
GASのすすめ
そこで勧めていただいたのが「Google Apps Script」通称(GAS)。
ここで問題が!
これってコードの知識がないとできないのでは💦
そうです。
GASはコードを作成し実行させる物。コード知識0の私にはかなり高い壁(というか絶壁)です。
お願い!ChatGPT!!
自分ではまだコードを書けない・・・そこで以前研修でも使ったChatGPTでコードを作成をお任せできるという事を思い出しました。
ここからが長い戦いになりました。
まずはデータベースとなるスプレッドシートを作成。


コードを書いてもらっては実行し、また質問の言葉を足してコードを書いてもらっては実行しの繰り返し。実際に上の図左側がChatGPTに言葉を変えてコード書き直してもらった履歴です。1歩進んでは2歩下がり2歩進んでは1戻るの繰り返しました。
完成・・・そして実用へ
1日1時間から2時間何回も言葉を変え付け足したしてChatGPTと3日間・・・
結果はこちらです。


無事に1週間前と2日前に違う件名と本文で送信されています。Ccでもメールが送信できています。
実際のGASのコードがこちらです。
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
});
}
まとめ
今回分かったことは、コード知識0でもChatGPTを使えば出てきたコードを張り付けるだけでできることがたくさんあるということ。
但し一度で答えがぴったり出るわけではなく、何回も言葉を変え細かく会話を繰り返すことが必要です。
そして何よりトライアル&エラーが大事であるということを学びました。
今後も失敗から学ぶことを続けていきたいです。