【Youtube】Google Apps Script入門 02.飲食店売り上げをメール報告&共有できるスプレッドシートとそのスクリプト

2022.9.14
今回は「Google Apps Script入門の2回目、飲食店で使える売り上げをメールで報告と共有できるスプレッドシートとそのスクリプト」を解説します。

動画の目次

動画概要

GASプログラム

function onEdit(e) {

  //base
  const sheet  = SpreadsheetApp.getActiveSpreadsheet();
  const activeSheet = sheet.getActiveSheet();
  const sheet_name = activeSheet.getName()
  const row = e.range.getRow();
  const column = e.range.getColumn();

  //左から4番目の列が編集したときに動作
  if(column === 5){

    //編集した行のデータを取得
    let data_1 = get_data(row);

    //月の合計データを取得
    let data_2 = get_data(33);

    /*----email処理----*/
    //件名
    let subject = sheet_name+'の売上げ報告';

    //本文
    let body = `今日(${set_date(data_1[0])})の売上げデータ
――――――――――――――――――――――――――――――――
売上金額:${data_1[1]}
仕入金額:${data_1[2]}
雑費:${data_1[3]}
人件費:${data_1[4]}
粗利:${data_1[5]}
備考:${data_1[6]}


月の売上げデータ
――――――――――――――――――――――――――――――――
売上合計:${data_2[1]}
仕入合計:${data_2[2]}
雑費合計:${data_2[3]}
人件費合計:${data_2[4]}
粗利合計:${data_2[5]}
`;

    //メールアドレス
    let email = 'chomoranmax@gmail.com';

    //送信者の名前
    const options = {name: 'ちょもらんまWEBプログラミングChannel'};

    var popUp = Browser.msgBox("送信確認!", "メール送信しますか?", Browser.Buttons.OK_CANCEL);
    if (popUp == 'ok') {
        GmailApp.sendEmail(email, subject, body, options);
        Browser.msgBox("送信しました");
    } else {
        Browser.msgBox("キャンセルしました");
    }

  }
  return;
}

function get_data(row=4){
  const sheet = SpreadsheetApp.getActiveSheet();
  const range = sheet.getRange('A'+row+':G'+row);
  const values = range.getValues();
  let arr = values[0];

  return arr;
}

function set_date(date_base){
  let d = new Date(date_base);
  let date = Utilities.formatDate(d, 'Asia/Tokyo', 'yyyy/MM/dd (E)');
  return date;
}

マニフェストコード

{
  "timeZone": "Etc/GMT-9",
  "oauthScopes": [
    "https://www.googleapis.com/auth/script.send_mail",
    "https://www.googleapis.com/auth/gmail.modify"
  ],  
  "dependencies": {
  },
  "exceptionLogging": "STACKDRIVER",
  "runtimeVersion": "V8"
}