見出し画像

【GAS】Google Apps Script 活用事例 Googleドキュメントで、よく使うテンプレートを表示させるスクリプト

日付と曜日を毎回タイプするのって、結構面倒くさい。

実は転職先では、正社員ではないため、Slackのアクセス制限があり、加えてSlack APIも前職と異なり、自由に使う事が出来ません。もちろん、Slash Commandsも使えないので、Googleドキュメントで、テンプレート集を作っています。

担当面接官の方に、応募があったので、職務経歴書などの確認をお願いします的な内容をSlackでお伝えする機会が1日に何度かあり、テンプレートを作成しようと考えました。(※コピペだと日付を消して、タイプする手間が発生する)

function showMeDraft() {
 const document = DocumentApp.getActiveDocument();
 const body     = document.getBody();
 const ui       = DocumentApp.getUi();
 
 const date     = new Date();
 const day      = dayOfTheWeek(date.getDay());//曜日を数字で取得
 const now      = date.getHours();//現在時刻を取得
 
 const stringDate  = (date, number, format) => {
   date.setDate(date.getDate() + number);
   return Utilities.formatDate(date, 'JST', format);
 }
   
 const greet    = greeting(now);
 const today    = stringDate(date, 0, 'yyyy/MM/dd') + '(' + day + ')';
 const html     = HtmlService
   .createHtmlOutput(
   `<p>${greet}</p>
   <p>新着応募がありました。本日中 ${today}に、下記リンクの応募書類をご確認頂くことは可能でしょうか?</p>
   <p>お忙しいところ恐縮ですが、よろしくお願い致します!</p>
   <br>
   <p>HRMOSリンク</p>`
   )
   .setWidth(450)
   .setHeight(300);
   
   ui.showModelessDialog(html, '書類選考の依頼文');
   
 }
   

//現在時刻を取得して、挨拶を変更する。朝だったら、おはようございます。
//夜だったら、お疲れ様です。   
function greeting(now) {
 if(now < 12 ){
   return 'おはようございます。'
 }else{
   return 'お疲れ様です。'
 }
}
   
   
//date.getDay()で出力した数字を渡して、曜日を返す
function dayOfTheWeek(day) {

 let string;
 
 switch(day){
   case 0: string = '日';
 break;
   case 1: string = '月';
 break;
   case 2: string = '火';
 break;
   case 3: string = '水';
 break;
   case 4: string = '木';
 break;
   case 5: string = '金';
 break;
   case 6: string = '土';
 break;
 }
 return string
}

スクリーンショット 2020-08-29 21.12.55

Slackで、同じ機能を実現する場合

自分のワークスペースで似た機能を作りました。やっぱ、Slackで作る方が便利かつ簡単ね.....。上記はpタグが面倒ですね。

function doPost(e) {

 const verificationToken = e.parameter.token;
 if (verificationToken !== '********************') { // AppのVerification Tokenを入れる
   throw new Error('Invalid token');
 }
 console.log(e);
 
 const today  = (date, format) => {
   return Utilities.formatDate(date, 'JST', format);
 };
 
 const date      = new Date();
 const day       = date.getDay();
 const stringDay = dayOfTheWeek(day);
 
 const now       = date.getHours();//現在時刻
 const greet     = greeting(now);
 
 console.log(`今日は、${stringDay}曜日`);
 console.log(greet);
 
 
 //2020/08/20のように日付を返す
 const stringDate = today(date, 'yyyy/MM/dd');
 const result     = `${stringDate}${stringDay})`;
 console.log(result);
 
 
 const draft      = `${greet}\n新着応募がありました、本日中に ${result}ご確認頂く事は可能でしょうか。\nお忙しいところ恐縮ですが、よろしくお願いいたします!\n\nHRMOSリンク`
 console.log(draft);
 
 
 const response   = { text: draft };                                                                                                
 return ContentService.createTextOutput(JSON.stringify(response)).setMimeType(ContentService.MimeType.JSON);
}


function greeting(now) {
 if(now < 12 ){
   return 'おはようございます。'
 }else{
   return 'お疲れ様です。'
 }
}


//date.getDay()で出力した数字を渡して、曜日を返す
function dayOfTheWeek(day) {
 let string;
 switch(day){
    case 0: string = '日';
      break;
    case 1: string = '月';
      break;
    case 2: string = '火';
      break;
    case 3: string = '水';
      break;
    case 4: string = '木';
      break;
    case 5: string = '金';
      break;
    case 6: string = '土';
      break;
  }
 return string
}

この記事が気に入ったらサポートをしてみませんか?