3
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

006-初めてのGoogleAppsScriptで何をしたら良いか分からない

Last updated at Posted at 2017-12-30

#結論
まずはGoogleフォームで登録完了メールを送信するスクリプトとか良いかと思います。

#設定手順

1.Googleフォームを用意します

スクリーンショット 2017-12-29 9.45.20.png

2.回答データを保存するスプレッドシートを用意します。

スクリーンショット 2017-12-29 9.53.05.png

今回はスプレッドシートを新規作成するものとします。
スクリーンショット 2017-12-29 9.53.33.png

4.作成したスプレッドシートからスクリプトエディタを開きます。

スクリーンショット 2017-12-29 9.54.07.png

どんな名前でも良いのでスクリプトの名前を設定します。
スクリーンショット 2017-12-29 10.35.16.png

5.スクリプトを作成します。

先に記載した内容をコピペしましょう。

6.プロジェクトトリガーをセットします。

「編集」>「現在のプロジェクトトリガー」をクリックします。
スクリーンショット 2017-12-29 11.08.49.png

「実行」と「イベント」を設定します。
前者は関数名、後者はタイミングの設定…「スプレッドシートから」「フォーム送信時」を選びます。
kobito.1514594623.316176.png

7.スクリプトの実行を承認します。

スクリーンショット 2017-12-29 10.35.42.png

スクリプトを動作させるアカウントを選択します。
Google Chromeで複数アカウントにログインしている場合は、スクリプトを実行させたいアカウントを選択しましょう。
スクリーンショット 2017-12-29 10.36.01.png

「このアプリは確認されていません」と言った画面が出る場合は「〜〜(安全ではないページ)に移動」をクリックします。
スクリーンショット 2017-12-29 10.36.18.png

アクセスを許可する対象を確認し「許可」をクリックします。
スクリーンショットではGmailだけですが実際はスプレッドシートも表示されます(キャプチャ取り間違えました)。
スクリーンショット 2017-12-29 10.36.29.png

8.入力内容がメール送信されます

kobito.1514597076.672663.png

#サンプルスクリプト

sample-code1.gs
function onFormSubmit(e) {
  var recipient = e.namedValues["メールアドレス"];
  var subject   = "フォームへのご回答ありがとうございます";
  var body      = "フォームへのご回答ありがとうございます。 \n"
                + "入力いただいた内容は以下となります。   \n"
                + "\n"
                + "お名前:" + e.namedValues["お名前"] + "\n"
                + "出欠:"  + e.namedValues["出欠可否"] + "\n";
  
  GmailApp.sendEmail(recipient, subject, body);
}

解説

「初めてのGoogle Apps Script」で検索すると大体出てくる「フォーム内容自動送信スクリプト」。動きが目に見えやすい割に利用する項目が少ないので説明が楽で良いですね。
スクリプトを見ると変数が4つ(recipientsubjectbodye)、メソッドが1つ(sendEmail)しかありません。recipientsubjectbodyは今回の説明用にあえて宣言しただけのため、実際必要なのはesendEmailだけです。
動作としては以下の工程となります。

  1. Googleフォームにデータが入力されます
  2. データがスプレッドシートに保存されます
  3. 項番2をトリガーとして関数onFormSubmit(e)が実行されます
  4. 関数内GmailApp.sendEmail(recipient, subject, body)が実行され、メールが送信されます

変数eは「イベントオブジェクト」といい、今回の場合では「フォーム送信イベント」で入力された情報が入っています。
e.namedValues["〜〜"]にある「〜〜」の中身はスプレッドシートの項目名を入力すれば取り出すことができます。

変数body"で文字列を、+で変数と文字列の結合を、\nを改行を挿入しています。

つぶやき1

フォーム入力内容を変数eで取得してメール送信、という流れは簡単ですが結構使うので便利なのですが、トリガー設定するところが分かりづらかったり面倒くさかったりするのがハードルを上げているようです。
サンプルスクリプトは単純な内容にしていますが、件名に入力者の名前を入れたり本文をいじってみるなど応用の幅は結構あるので色々試してみてください。

つぶやき2

「スクリプトやってみたい」という声をいただきとりあえず書き始めたは良いものの、今更ですがなかなかどうして人に伝えるのは難しいですね。

参考

3
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?