sendMessage(e)関数で実行していることは、主に以下になります。Object)として受け取り、SS(Spreadsheet)上から必要データを取り出して、承認者向けにメールを送付する。メールの内容として、承認・否認の選択肢を付与する。e.range.getRow()を代入。言っても、そもそもeってなんだという疑問がわかれるかと思います。ここでは、少しEventObjectというものの説明をしてみます。スプレッドシートを開いた時や変更した時に当然グーグル側ではどんな作業がなされたのかを記憶(Logging)しています。その内容をeというobjectに入れ込んで、私たちが使えるようにしてくれています。今回は、Form登録した時、スプレッドシートに申請者の登録内容が記入されています。これは、スプレッドシートをEdit(編集)したことを意味しており、その情報を利用して今回は何行目にその登録内容が記入されたのかを取得しています。objectでは、他にもValue(入力された値)やuser(入力者のemailアドレス)なども取得できます。e.valuesはすぐに出てきます。Scriptのドキュメントをご参照ください。sheet.getRange(row,8).setValue("申請中");次はこれまでも何回も利用してきた、sheet情報の取得と、そのシート内にデータを記入する方法です。先ほど変数設定したrowという変数を利用して、行数を指定しています。今回は入力する列が決まっているので、getRange()の行列は、(row,8)と固定値にしてあります。generateBody(e.values);このgenerateBodyというのは、GASでもともとある関数ではなく、今回自分たちで独自に作成する部分になります。コード一覧の最後に以下のようなコードがあります。generateBody(values)というのが、そうです。今回変数bodyには、この独自に作った関数を利用して、メール本文の内容データを作成しています。generateBody内で何をしているかは今回は一旦省略して、後日コード解説する予定です。generateBody()の()内に、e.valuesというのがあります。そのValues(入力値)を取得して、generateBody関数に渡しているということを意味しています。generateBodyは渡された、e.valuesのデータを使って、値(今回は返ってくるのもobjectですが)を生成します。要は、メール本文内に記入するデータをgenerateBodyに渡したデータを使って作成して、変数として保持しているということです。変数や引数(今回のe.values)については、いつか説明します。関心のある方はググっていただければたくさん記事は出てくるはずです。linkを作る部分です。urlに代入していくのですが、代入内容に少し工夫が必要なので、その説明です。クリックしてもらって何をしたいかと言うと、次回説明するdoGet関数を呼び出すことが目的となります。このためには、実はアプリケーションを公開する必要があります。これまでの、コードは外部からアクセスする必要がなかったので不要でしたが、今回は承認者が受け取ったメールで承認・否認を選択してクリックしてもらった結果を受け取る必要があります。そのため、外部からのアクションを受け取る際に利用するのがdoGet()関数となります。公開方法は次の画像の通りです。公開すると、urlが表示されるので、”https://script....”の部分に当該コードを挿入してください。sheet.getRange(row,11).getValue();実行していることはシンプルです。1つ目は、全日で申請された場合は1日、それ以外(午前・午後)が申請された場合は0.5日をシートに表示するために、関数を対象セルに貼り付けているだけです。他の二つも、社員マスタから申請者に対応する承認者を選択する計算式を入れたりしているものです。{htmlBody:html});GmailAppクラスには、メールを送ったり、メールの中身を確認するメソッドが含まれています。今回は、メールを送るメソッドsendEmail()関数を利用します。{オプション})また、送付するメールは、htmlが受け取れる場合はhtmlメールを、それ以外はplaneメールとして送ることにしています。最終行のGmail.App(....,body,{htmlBody:html});で分岐されております。基本body変数をメールのBodyとして送付します。bodyにできるように{htmlBody:html}としています。まとめかなり長くなってしまいました。ここまで一度に理解しながら進めることは、慣れが必要ですので、一つづつGASの仕様を理解していただきながら、そもそものゴールの動作を頭に入れて読んでいただくと、それぞれのコードの意味が見えてくるかと思います。次回は、doGet(e)関数、承認者がメールの承認・否認をクリックした後に起こす動きに対応するコードを説明していきたいと思います。BY句クエリ使ってみたいけど、SQL環境作るほどではないって人向けにスプレッドシートのクエリ関数がちょっとした練習や作業環境に適していたので、紹介していきます。基本はクエリの書き方になりますが、よく実務で起きる事象への対応も紹介していきます。byでのソート機能です。GASGithub稟議書管理をGASでスプレッドシート上に台帳にするGithub稟議書で作成した、稟議書データをスプレッドシートで一覧表示できるようにします。GAS及びGithubAPIの使い方を確認しながら、実装方法をステップバイステップで解説。ver.〜ベンチャーで人気の採用ツールWantedly。上場到達という点も話になります。そんなWantedlyの経営管理システム構成を紹介していきます。GASspreadsheetでカスタムメニューを作成するスプレッドシートのUiを独自にカスタマイズして、自分が利用したいスクリプトをタブに表示させていきます。スクリプト画面を立ち上げなくても、メニューバーから作ったスクリプトが実行できるようになります。定期的に作業をするマスターシートなどに組み込むといいです。2クエリ関数の構成クエリ使ってみたいけど、SQL環境作るほどではないって人向けにスプレッドシートのクエリ関数がちょっとした練習や作業環境に適していたので、紹介していきます。基本はクエリの書き方になりますが、よく実務で起きる事象への対応も紹介していきます。2回目の今回はクエリ構文の構成です。利用制限(上限)について〜GASでプロパティストアを利用する方法の説明です。マジックナンバーやトークンなどのスクリプト内に保存したく無いデータを保存する領域としてプロパティストアが利用できます。スクリプトから登録する方法や、配列を登録する方法なども紹介していきます。コメントをキャンセルメールアドレスが公開されることはありません。scriptでできること2019.04.102020.01.22。