このブログを検索

2012年8月12日日曜日

[前編]Googleフォーム回答時にGmail送信

■自動的にGmail送信したい

   昨日の時点で、Googleサイト上からGoogleフォームに入力・送信し、その内容を
   Googleフォームの台帳に反映できるようになりました。

   今日は、Googleフォームに入力・送信された時点で、自動的にその内容を自分宛てに
   送信できるようにした過程を書こうと思います~~♪


   ちなみに先に言ってしまいますが。
   以前ウォーミングアップで行ったGmail送信の応用なので、「まぁ軽くできるかな~」と
   甘くみていたら、、、、  結構苦労しちゃいました。。。。


■スクリプトとトリガー設定

   まず、スクリプトを書く場所ですが、[サイト上のフォームから台帳に反映]までは
   勝手にやってくれますので、私が手を加えるのは[台帳からメール送信]の部分。  
   つまり、Googleフォームの台帳にスクリプトを書きこみます。

   Googleフォームの台帳を開くと、スプレッドシートとほぼ同じ様式になっています。
   (というか、同じ?)
   ですので、スプレッドシートにスクリプトを書くのと同様の手順で、「ツール」→
   「スクリプトエディタ」を選択します。


  

   そして、参考書をみながら下記のスクリプトを入力。



       ☆簡単コード解説☆
         4行目    :  今開いているスプレッドシートを認識する

         7~11行目 :  <e.namedValues[ ]>で、フォームの質問項目に対する
                   回答をそれぞれの変数に格納
                    例)質問項目「タイトル(B行)」の回答をtitleに格納  

         14~18行目:  メールの題名、本文イメージ、メールアドレスを指定

         21行目   :  メール送信       
 
       ※1行目の、関数名の後「(e)」を忘れずに!!

   
   次に、スクリプトを実行させるためのトリガーを設定します。
   スクリプトエディタのメニューバーの中に、時計のマークがあります。(左から6番目)
   カーソルを持っていくと、「現在のスクリプトのトリガー...」と表示されます。

   


   
   これをクリックすると、別画面で「Current project's triggers」というのが出て、
   「実行」「Event」という項目の下にリストボックスが表示されます。

      「実行」  : トリガーを設定する関数名
      「Event」 : どういうイベントの時にスクリプトを動かすか

   上記を踏まえて、リストボックスから選択します。
   
   今回は、「sendEmailofForm」という関数を、フォームから回答を受付けた時点で
   スクリプトを動かしたいので、
   
      「実行」 : sendEmailofForm
      「Event」 : From spreadsheet   ,  On form submit

   と設定します。



      ☆補足☆
         「Event」のリストボックスにある選択肢は、下記のような意味です。
            ①From spreadsheet    
               -On open      : スプレッドシートを開いた時
               -On edit      : スプレッドシートを編集した時
               -On form submit : フォームを受付けた時
 
            ②Time driven            
               -Specific date and time : 特定の日時に
               -Minutes timer       : ○分毎に (例:5分毎に)
               -Hour timer         : ○時間毎に (例:2時間毎に)
               -Day timer         : 毎日○時に (例:毎日12時に)
               -Week timer        : 毎○曜日に (例:毎月曜日に)


   さて、これできちんと動いてくれるはず♪♪♪


■「実行」ボタンを押してみると・・・・・


   何か間違いはしていないか?ちゃんと思ったとおりに動いてくれるか?
   確認するために、スクリプトエディタの「実行(右向き▲)」ボタンを押下。

   すると・・・・・・・・・


   あれ!???

    <Type Error : Cannot read property”namedValues”from undefined.(行7)>

   というエラーが。



   何かタイプミスしたかしら?もう一度1行目から見直してみる。
   うーん、特に間違っていないと思うけど・・・。

   参考書を基に、自分で少しアレンジを加えているが、もしかしてそれが
   いけない??
   まったく一言一句参考書と同じスクリプトを書いてみても、やっぱりエラー。

   <e.namedValue>の箇所で、きちんと値を読み取れていないのが原因だとは
   なんとなく想像できるのですが、、、、、

   なんでー
   なんでなんでーー
   なんでなんでなんでーーー
   
   あー、頭いたいーーーー(p>□<q*))

今日はここまで。


■予告編

   明日は、このエラーの解決編です~~。