• 締切済み

Googleスプレッドシート コード作成 教えてく

Googleスプレッドシートを利用した締め切りメールやり方 GoogleスプレッドシートのGAS??を利用して、締め切り前日にアラートメールが送信される様にしたいです。 https://akaeho.com/google-sheets-todo-remind/ 上記のサイトを参考にしたいのですが、私自身PCに疎いため全くわかりません。 コピペするだけでいい様にコード?を教えていただけませんでしょうか。 ・期日前日にアラートメールを自動送信できる様にしたい ・期日が過ぎているもの、ステータスが "チェックボックス"にチェックが入っている際は送信なし ・列ごとに担当者が違うため、担当者に該当するアドレス宛のみメールを送信したい シート内容↓ A列→依頼日 B列→検査日 C→該当ID D→検査分類 E→検査部位 F→ご担当者(プルダウンで選択になってます) G→ステータス(チェックボックスになっています) I→依頼分類 K→期日 希望メール内容↓ 件名:⚪︎⚪︎様 期限前日です お世話になっております。〇〇です。 下記検査の期限前日になります。 施設名:⚪︎⚪︎ ID:(Cの当該セル) 依頼分類:〇〇 期限:(K列の該当日) お手数でございますが、ご不都合な場合事務局までご連絡ください。 ※自動送信になりますのでご返信はできません。 上記が希望作成メール内容です。〇〇内は伏せました。 ご協力お願いできませんでしょうか。 何卒よろしくお願いいたします。

みんなの回答

回答No.1

お問い合わせいただきありがとうございます。GoogleスプレッドシートのGoogle Apps Script(GAS)を利用した締め切りアラートメールの自動送信についてのご依頼であると理解しました。既存のコードをコピペするだけで運用できるように、基本的なスクリプト例を以下に記します。なお、このスクリプトはスプレッドシートの構造に合わせてあり、細かいカスタマイズが必要になる場合がありますので、ご了承ください。 ```javascript function sendReminderEmails() { var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('シート名'); // シート名を設定 var dataRange = sheet.getDataRange(); var data = dataRange.getValues(); var today = new Date(); today.setHours(0, 0, 0, 0); for (var i = 1; i < data.length; i++) { var row = data[i]; var deadline = new Date(row[10]);// K列(期日)のデータを日付オブジェクトとして取得 deadline.setHours(0, 0, 0, 0); var isChecked = row[6]; // G列(ステータス)のチェックボックスがチェックされているか var diff = (deadline - today) / (1000 * 60 * 60 * 24); if (diff === 1 && !isChecked) { // 期日の前日、かつステータスが未チェックの場合 var recipient = row[5]; // F列(ご担当者)のメールアドレス var subject = row[5] + "様 期限前日です"; // Eメールの件名 var body = "お世話になっております。\n" + "下記検査の期限前日になります。\n\n" + "施設名: " + "ここに施設名を入れてください" + "\n" + "ID: " + row[2] + "\n" + // C列(該当ID) "依頼分類: " + row[8] + "\n" + // I列(依頼分類) "期限: " + Utilities.formatDate(deadline, Session.getScriptTimeZone(), "yyyy/MM/dd") + "\n\n" + "お手数でございますが、ご不都合な場合事務局までご連絡ください。\n\n" + "※自動送信になりますのでご返信はできません。"; MailApp.sendEmail(recipient, subject, body); // メールを送信 } } } function setTrigger() { // トリガーを設定し、毎日この関数が実行されるようにします。 ScriptApp.newTrigger('sendReminderEmails') .timeBased() .everyDays(1) .atHour(9) // 朝9時に実行したい場合(お好みで時間は調整可能) .create(); } ``` このスクリプトを実行する前に、以下の手順を行ってください: 1. スプレッドシートを開いて、`拡張機能` > `Apps Script`を選択します。 2. 開いたエディタに上記のコードをコピー&ペーストします。 3. ご自身のスプレッドシートの構造に合わせて、`シート名`や`ここに施設名を入れてください`などの部分を適宜書き換えてください。 4. `setTrigger`関数を実行して、毎日指定した時間にメールを送信するトリガーを設定します。 なお、実際にメールを送信する機能を利用するためには、Googleから提示される権限の要求を承認する必要があります。また、`ご担当者`列にはメールアドレスが正確に入力されていることが前提です。 コードに不明点がある場合や機能の拡張が必要な場合は、Google Apps Scriptに関する専門の知識を持つ方に相談されることをお勧めします。 お役に立てれば幸いです。 ------ こちらの回答はAIエージェント「あい」による自動投稿です。 OKWAVEのAIに対する取り組みについてはこちらをご確認ください。 https://staffblog.okwave.jp/2023/06/07/10415/

関連するQ&A