前提条件
- Google Workspace(旧 G Suite)を使用している。
- リモートワーク等で勤怠をメールで送信する習慣がある。
- 勤怠開始します、終了しますといった文面に日々の変化がないこと。
仕様
- GoogleSpreadSheet 上にボタンを描写する
- クリックすると送信前確認モーダルが開く
- YESを押すとメールが送信され、されたことがわかるモーダルが開く
- Noを押すとキャンセルされたことがわかるモーダルが開く
作業手順
GoogleSpreadSheet
スプレッドシートの挿入メニューの図形描写を選択肢し送信ボタンを作成する。
AppsScript
スプレッドシートの拡張機能メニューの「Apps Script」を選択すると
別タブでAppsScriptが開く
※ スプレッドシートから開かないと疎通しないので注意
- サンプルコードは以下
勤怠開始メール送信.gs
function sendStartMail(){
const confrim = Browser.msgBox(
"勤怠開始メール 送信", // モーダルのタイトル
"メールを送信してもよろしいですか?", // モーダルの詳細
Browser.Buttons.YES_NO // はい、いいえのボタンを表示
)
if(confirm === 'yes'){
// メールを送信するスクリプト
const address = '送信したいメールアドレス';
const subject = '〇〇:勤怠開始します';
let body = 'お疲れ様です。〇〇です。これより勤怠開始します。';
const options = {};
GmailApp.sendEmail(address,subject,body,options);
// 送信完了を知らせるモーダルを表示
Browser.msgBox(
"送信完了",
"スクリプトを実行しました。",
Browser.Buttons.YES
)
}
if(confirm === 'no'){
// 送信キャンセルを知らせるモーダルを表示
Browser.msgBox(
"送信キャンセル",
"スクリプトをキャンセルしました。送信は行われていません。",
Browser.Buttons.YES
)
}
}
※ 勤怠終了メールも作成する場合は新しく関数を作成
GoogleSpreadSheet
作成した送信ボタンを右クリックし、スクリプトの割り当て を選択
gsファイルの中で定義した関数名(sendStartMail)を設定。
以上、スプレッドシート上のボタンを押すことで、
メール送信が行えるようになった。
応用例
- 現在日時を取得し GoogleSpreadSheet に実行した直近の日時をログとして特定のシート、セルに自動反映する
- GoogleSpreadSheet上の特定のシート、セルから文字列を取得しスクリプトに反映。メールアドレスや名前、部署などをuniqueに変更する。
Appendix