猿でも分かる!スプレッドシートでセルのステータス変更をトリガーに自動メールを送る方法

画像1


■動機

ある案件で、ステータスの変更と同時に特定の宛先にメールを送信することを要求されました。

一つづつ手動でやってもいいんですが、ミスも多いし何より工数がかかる…

そこで、自動で出来ないか?と調べてたんですが、どの記事も難易度が高い…プログラム言語なんて全然わからない猿の僕にはハードルが高すぎました。

そこで、0から言語を勉強して、なんとか実現する事が出来ました…習得に1ヶ月もかかってしまった…

そこで、僕みたいな猿でも、秒殺でこの機能を実現出来るようにわかりやすくまとめようと思いました。

(ちなみにこの機能を管理画面としてシステム構築すると○○万かかるみたいです…恐ろしい…)


■対象者

・スプレッドシートは使ったことあるけど…
・ぷろぐらみんぐ言語?
・効率化したい!
・管理画面を発注する予算がない

■やれる事

スプレッドシートの特定のセルのステータス変更をトリガー(きっかけ)に、自動でメールを送信します。

こんなタスク管理のシートがあったとして

スクリーンショット 2020-05-23 12.26.11

このD列のステータスを完了にすると

スクリーンショット 2020-05-23 12.26.30

こんなメールがC列に記載されているメールアドレス宛に届きます。

スクリーンショット 2020-05-23 12.17.14

■利用の具体例

①タスク管理で、タスクの進捗が「完了」になるとプロジェクトメンバーに完了のメールが送信される。

②申込者管理で、案件のステータスが「完了」になると、特徴の申込者に対して、任意のメッセージを送信する。

この機能を使うと色々と応用が効きます!

この機能を猿でも実現できるように3つのステップから説明します。
分かっているところは飛ばしていただいてOKです!

-本文目次-

ステップ01
・1.スプレッドシートを操作できるGAS(Google Apps Script)って何?
・2.シートの準備をしよう
・3.実際にプログラムを動かしてみよう

ステップ02
・今回の機能で行う処理を分解

ステップ03
・実際のコードをもとにそれぞれの意味を解説


ステップ01-1:スプレッドシートを操作できるGASって何?

Google Apps Script(以下GAS)は、GoogleスプレッドシートやGmail、Googleカレンダー、といった、Googleのツールやサービスを連携して利用するためのプログラミング言語です。


まって...プログラミング言語って何?...汗

(このレベルからなんです...涙)


プログラミング言語はPCに対して命令(お願い)するための言語です。

例えば、アメリカ人にお願いする時は、英語を使わないと通じませんよね?

同じように、プログラミング言語とはPC人に対して会話するための言語です。

画像2

GASとはスプレッドシート等のGoogleのサービスを利用して、PCに何か命令したいときに使う言語なのです。

ですので、一つ一つの命令を日本語に翻訳して理解していくことが必要なのです。


ステップ01-2:シートの準備をしよう

それでは早速、シートの準備をしましょう。

(今回はGASの中でもスプレッドシートを利用してプログラミングを動かす方法に特化しています)

✥スプレッドシートを開く✥

スプレッドシートを新規で開いて下さい。

・シート名:テスト タブ名:タスク管理にしておいて下さい。(なんでもいいですが)

スクリーンショット 2020-05-23 12.28.11

名前	タスク名	アドレス	ステータス
山田	メールを送信する	test@gmail.com	未完了
鈴木	シート更新	test@gmail.com	未完了
吉田	椅子を買う	test@gmail.com	未完了
上村	窓を開ける	test@gmail.com	未完了
中西	窓を締める	test@gmail.com	未完了
沢村	本を読む	test@gmail.com	未完了
山中	上司に連絡する	test@gmail.com	未完了
吉村	朝早く起きる	test@gmail.com	未完了
森	夜は定時に帰る	test@gmail.com	未完了
工藤	プレゼン資料作る	test@gmail.com	未完了
大島	食事の幹事	test@gmail.com	未完了
本田	会計を確認	test@gmail.com	未完了

(↑シート内容のコピペ用。右クリック>特殊貼付け>値のみを貼り付け。)

※ここで注意点!!

スプレッドシートを開いているアカウントはデフォルトのアカウントにしてください。

デフォルトのアカウントがわからない方はこちらを参考に。

デフォルト設定になってないとプログラムを書くページが開けません...

スクリーンショット 2020-05-23 12.41.59

ではいよいよプログラミングを動かしてみましょう

ステップ01-3:実際にプログラムを動かしてみよう

まずはツール>スクリプトエディタでスクリプト編集画面を開いて下さい。

スクリーンショット 2020-05-23 12.39.08

こんが画面が出てきたら成功!!

スクリーンショット 2020-05-23 12.43.52

とりあえず、プロジェクト名は「自動メール送信」にでもしておいて下さい。

そして、この何やら難しい暗号みたいなのが書かれているのが、プログラミング言語です。

function myFunction() {
 
}

お察しの通り、こちらにステータス変更でメールを送信するコードを書いていきます。

では早速プログラムを動かしてみましょう


まずは肩慣らしに、セルを編集すると「アラートが出現!!」というアラートを出してみましょう。

function myFunction() {
 var result = Browser.msgBox("アラートが出現!!", Browser.Buttons.OK_CANCEL);
}

こちらをコピペして下さい!これは自動メールには関係ないですが、プログラムを動かすとはどういうことなのかを体感してもらえると思います!

僕が初めてこれが出来た時はテンション上がりました!

この状態になっていたらOKです。

スクリーンショット 2020-05-23 22.56.18

一応この「四角の何か」をクリックしてプロジェクトを保存しましょう。

スクリーンショット 2020-05-23 22.56.18

✥トリガーの設定✥

次にトリガーを設定します。

トリガーとは「きっかけ」のことです。

・ハンカチを拾ってくれたのをトリガーに彼のことを好きになる。
・ステータス変更をトリガーに自動メールを送信する
・セルの編集をトリガーにアラートを出す。

これらは全て同じことです。


では、タブの時計のマークをクリックして下さい。

画像19

以下ようなトリガーを設定する画面になります。

右下の「トリガーを追加」をクリック

スクリーンショット 2020-05-23 13.15.39

このようにトリガーを設定出来ます。

スクリーンショット 2020-05-23 13.16.15

※とりあえず、変更箇所は1つだけです。

イベントの種類を選択 >「編集時」にしてください。

つまり、何かを編集した時をトリガーに設定したということです。


※ここで一つ壁があります。(でも焦らないで)

初めての設定だと、認証を取らないといけないです。


左下の小さい「詳細」をクリックして下さい。

スクリーンショット 2020-05-23 12.51.45

そして左したの「(プロジェクト名)に移動」をクリックすると、認証の許可の画面が出てきます。

スクリーンショット 2020-05-23 12.51.51

これで「許可」するとトリガーが設定されます!

画像19

こんな感じ↓になってたらOK!

スクリーンショット 2020-05-23 13.20.14

次に先程作ったスプレッドシートに行ってセルに何かを入力してみて下さい!

スクリーンショット 2020-05-23 13.25.21

じゃん! 

こんな感じにアラートが出現するのです。

つまり、先程のコードは、セルの編集をトリガーにアラート「アラートが出現!!」を出す。という指示を書いたプログラミングだったということですね。


✥コードの解説✥

それではそれぞれのコードの解説をいたします。

function myFunction() {

}

まずはこの部分↑

function myFunction(){
}
これは機能の名前を定義しています。(関数名の定義らしいんですが意味わからないので簡単な認識でいいと思います)

この場合は、myFunctionという機能名です。

例えば
Function sendEmail とかでもいいみたい。

var result = Browser.msgBox("アラートが出現!!", Browser.Buttons.OK_CANCEL);

次はこの部分です。

こちらでは、実際に命令を記載しています。
var 〇〇は
「〇〇という名前の入れ物を勝手に作ります!」

という意味です。

つまり、var result はresultという名前の入れ物(変数)を作ります!という宣言のようなものです。

そしてその入れ物の中に 
Browser.msgBox("アラートが出現!!", Browser.Buttons.OK_CANCEL);という文字列を入れているイメージです。

Browser.msgBoxは画面(Browser)にポップアップのアラート(msgBox)を出しますよ!という意味です。

msgBoxなどの命令はメソッドと言いそれぞれGASの方で定義されている機能があるので、それはおいおい使いながら覚えていったら良いのかと思います。

・getRange(1つのセル取得する)
・getValue(指定した範囲の値を1つ取得する)
・msgBox(メッセージボックスを表示する)

このような命令があります!

そしてこのmsgBoxには表記のルールがあり

("ここにメッセージボックスの文言", Browser.Buttons.ここにボタンの種類)

を記載するのです。

今回は「OK」と「CANCEL」を表示したいので、

var result = Browser.msgBox("アラートが出現!!", Browser.Buttons.OK_CANCEL);

このような形になりました。

以上がコード説明です。

まとめますと

function myFunction() {
//今回の機能の名前を付ける
 var result = Browser.msgBox("アラートが出現!!", Browser.Buttons.OK_CANCEL);
//result という箱をつくり、その中でブラウザにメッセージボックスを出現させる命令をする
}

このような感じです。

ちなみに
//この記号は、//以降の文字がコードとして読み込まれず、コメントとして残すことが出来ます。


ステップ02:今回の機能で行う処理を分解

いよいよ実際にセルのステータス変更をトリガーに自動メールを送る方法の説明に入ります。

まずは今回の機能で行う処理を分解していきます。

大きく分けて2つの処理があります。

①セルの編集が条件に合うかどうかの判定

a.特定のセルの変更情報を取得します。
b.そのセルの変更が条件にあっているかを判定します。(今回だと、D列の変更なのか?「完了」という文字が入力されたかどうか?)
c.条件にあっていたら、メールを自動送信する機能を発動します。

②メールを自動で送信する機能

a.各シートのセルの情報を取得
b.それぞれの取得した情報を整理(今回だと、氏名、宛先、タスクなど)
c.指定した宛先に、指定したタイトル、本文のメールを送信。

以上が今回やるセルのステータス変更をトリガーに自動メールを送る方法の機能の分解です。


こうみると簡単そうに見えません?


ステップ03:実際のコードをもとにそれぞれの意味を解説

それではいよいよ実際のコードをもとにそれぞれのコードが意味するを解説していきます。

ではいよいよセルのステータス変更をトリガーに自動メールを送る方法の説明です。

一行ずつ丁寧に実行していることを翻訳していきます!

まずは実際に動かすためのコードを見て下さい

申し訳ないのですが、ここからは有料にさせて下さい!
1ヶ月分の知識を数十分で理解できるのでコスパは最強だと思います。
実際のコードや各コードの説明を詳しくさせていただいておりますのぜひぜひ!


続きをみるには

残り 4,592字 / 1画像

¥ 1,480

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