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

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


#設定手順
## 1.Googleフォームを用意します
![スクリーンショット 2017-12-29 9.45.20.png](https://qiita-image-store.s3.amazonaws.com/0/110567/bef32b8a-cfb2-2bb2-8328-c43d097f49f7.png "スクリーンショット 2017-12-29 9.45.20.png")

## 2.回答データを保存するスプレッドシートを用意します。
![スクリーンショット 2017-12-29 9.53.05.png](https://qiita-image-store.s3.amazonaws.com/0/110567/d78b89a9-f30f-f931-430c-de94b0275127.png "スクリーンショット 2017-12-29 9.53.05.png")

今回はスプレッドシートを新規作成するものとします。
![スクリーンショット 2017-12-29 9.53.33.png](https://qiita-image-store.s3.amazonaws.com/0/110567/e1aff307-47e6-d79c-cbd0-77a6896fdd16.png "スクリーンショット 2017-12-29 9.53.33.png")

## 4.作成したスプレッドシートからスクリプトエディタを開きます。
![スクリーンショット 2017-12-29 9.54.07.png](https://qiita-image-store.s3.amazonaws.com/0/110567/25d65774-2c72-f0e7-de07-f21d048f31ec.png "スクリーンショット 2017-12-29 9.54.07.png")

どんな名前でも良いのでスクリプトの名前を設定します。
![スクリーンショット 2017-12-29 10.35.16.png](https://qiita-image-store.s3.amazonaws.com/0/110567/e7ca77a2-581b-af92-0bf1-3d21b7abfc22.png "スクリーンショット 2017-12-29 10.35.16.png")

## 5.スクリプトを作成します。
先に記載した内容をコピペしましょう。

## 6.プロジェクトトリガーをセットします。
「編集」＞「現在のプロジェクトトリガー」をクリックします。
![スクリーンショット 2017-12-29 11.08.49.png](https://qiita-image-store.s3.amazonaws.com/0/110567/cffe7fcb-350c-2949-3acd-82611db6f80d.png "スクリーンショット 2017-12-29 11.08.49.png")

「実行」と「イベント」を設定します。
前者は関数名、後者はタイミングの設定…「スプレッドシートから」「フォーム送信時」を選びます。
![kobito.1514594623.316176.png](https://qiita-image-store.s3.amazonaws.com/0/110567/dc974bb4-7d0e-2c23-b19a-788e09754696.png "kobito.1514594623.316176.png")

## 7.スクリプトの実行を承認します。
![スクリーンショット 2017-12-29 10.35.42.png](https://qiita-image-store.s3.amazonaws.com/0/110567/3b4bff1b-8315-057b-9a82-2c968c6cd4ae.png "スクリーンショット 2017-12-29 10.35.42.png")

スクリプトを動作させるアカウントを選択します。
Google Chromeで複数アカウントにログインしている場合は、スクリプトを実行させたいアカウントを選択しましょう。
![スクリーンショット 2017-12-29 10.36.01.png](https://qiita-image-store.s3.amazonaws.com/0/110567/6e089a7a-8a5d-3c1f-3b5d-4b6581dfe9a7.png "スクリーンショット 2017-12-29 10.36.01.png")

「このアプリは確認されていません」と言った画面が出る場合は「〜〜（安全ではないページ）に移動」をクリックします。
![スクリーンショット 2017-12-29 10.36.18.png](https://qiita-image-store.s3.amazonaws.com/0/110567/1e7d9613-4551-8fdb-0988-23e6fa7c5b0b.png "スクリーンショット 2017-12-29 10.36.18.png")

アクセスを許可する対象を確認し「許可」をクリックします。
スクリーンショットではGmailだけですが実際はスプレッドシートも表示されます（キャプチャ取り間違えました）。
![スクリーンショット 2017-12-29 10.36.29.png](https://qiita-image-store.s3.amazonaws.com/0/110567/bcf9f02b-46c6-1223-0378-fccba73db802.png "スクリーンショット 2017-12-29 10.36.29.png")

## 8.入力内容がメール送信されます
![kobito.1514597076.672663.png](https://qiita-image-store.s3.amazonaws.com/0/110567/5d2a9517-b328-f830-4f38-c7299ec3cf44.png "kobito.1514597076.672663.png")


#サンプルスクリプト
```js: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」で検索すると大体出てくる「フォーム内容自動送信スクリプト」。動きが目に見えやすい割に利用する項目が少ないので説明が楽で良いですね。
スクリプトを見ると変数が４つ（`recipient`、`subject`、`body`、`e`）、メソッドが１つ（`sendEmail`）しかありません。`recipient`、`subject`、`body`は今回の説明用にあえて宣言しただけのため、実際必要なのは`e`と`sendEmail`だけです。
動作としては以下の工程となります。

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

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

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

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

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


# 参考
+ [Event Objects](https://developers.google.com/apps-script/guides/triggers/events "Google Apps Script | Google Developers")
+ [sendEmail(recipient, subject, body)](https://developers.google.com/apps-script/reference/gmail/gmail-app#sendEmail(String,String,String) "Google Apps Script | Google Developers")