Googleフォームに自動返信機能をつけるGAS。差出人名・メールアドレス変更。

Googleフォームに自動返信機能をつけると、さらに便利に使えます。
その方法をまとめてみました。
GAS(プログラミング)を使います。

※GoogleフォームとGAS by Nikon Z7Ⅱ+24-200mmF4-6.3

 

Googleフォームへ自動返信機能をつける選択肢

Googleフォームは無料で使えます。
こういった申込みフォーム、お問い合わせフォーム、登録フォーム、アンケートなどをつくることができるものです。

ネットで受け付ける場合には、このフォームを使いましょう。

フォームに入力されたデータが、このようにスプレッドシートへ記録されます。
こうなれば、データとしていかようにも利用でき、メールすることも自動返信することもできるのです。

フォーム以外の次のようなものは、使わないようにしましょう。

・Excel、Wordへ入力→入力しづらい、入力していただいたデータを取りまとめるのが大変(マクロを使えばいいのですが、マクロを使えるならこの選択肢はないでしょう)

・PDF→基本的に編集ができない。プリントアウトして記入してメール添付、FAXなんてやってはいけません。

このGoogleフォームに入力していただいたときに、確認のために自動返信メールを送ることもできます。
その選択肢は、3つ。
・Googleフォームの機能で送る→メールのコピーが送られるのみ
・Googleフォームのアドオンを使う→差出人がそのGoogleフォームのGoogleアカウントのメール(Gmail)、名前や申込内容などを入れることはできない
・GAS(Google Apps Script=Googleのプログラミング)でつくる→差出人名、差出人メールアドレス変更可能、名前や申込内容などを入れることができる

このうち、今回は、3つ目のGASを取り上げます。

 

Googleフォーム、スプレッドシートの設定

 

Googleフォームの設定

まずGoogleフォームを設定していきます。

Googleドライブ から、Googleフォームを選び、

タイトルをつけ、入力していただく項目を入れていきましょう。
今回の場合、
・お名前(姓)
・お名前(名)
・メールアドレス
という項目をつくります。

これらはすべて[記述式]という種類にし、また、入力もれがないよう、[必須]にしておきましょう。

このようにできあがったら、

[設定]タブで、[確認メッセージ]を編集しておいたほうがいいです。
フォームへ入力していただいた後に表示されるメッセージが、初期設定だと「回答を記録しました」と味気ないものになってしまいます。

このプレビューアイコンをクリックすると、実際のフォームが出てきて、テストできます。

 

なお、[送信]をクリックすると、フォームへのリンクが表示されるので、これを伝えれば、フォームへ入力していただけます。

WordPressをはじめとするサイト(HP、ブログ)に組み込む場合は、このアイコンをクリックしましょう。

ただ、WordPress のプラグインContact Form 7のほうが見た目はいいです。
WordPress問い合わせフォームの最適解Contact Form 7のカスタマイズ。日付選択・ラジオボタン・必須ラベル・入力例・送信ボタン・データベース・メッセージ・自動返信メール。

 

Googleスプレッドシートの設定

次に、Googleフォームの[回答]タブで、この緑のアイコンをクリックします。

すると、Googleスプレッドシートをつくることでき、Googleフォームに入力してもらったデータを保存できるのです。

 

Gmailの設定

自動返信で、差出人メールアドレスを変更するには、Gmailにてメールアドレスの設定が必要です。
(差出人メールアドレスを変更したいという方は、すでに設定済みであることが多いでしょうが)
こちらの記事で設定しておいていただければ。
○○@△△.comのメールアドレスをつくり、Gmailで使うしくみと手順

 

Googleフォームに登録後、自動返信するGAS

最後に、自動返信部分をつくっていきます。
Googleスプレッドシートの[拡張機能]→[Apps Script]を選択すると、

GAS(Google Apps Script)が開きます。
この{ と }の間にプログラム(コード)を書いていくのです。

 

Gmailでメールを送るGAS

まずは、Gmailでメールを送る部分をつくっていきます。

 
GmailApp.sendEmail(○、△、□);

で、○にメールアドレス、△にタイトル(メールの件名)、□に本文をいれます。
文字は、 ’(シングルコーテーション)で囲むというルールがあるので気をつけましょう。

上記のプログラムだと、info@gmail.comへ、「タイトル」という件名で、「本文」というメールが送ることができます。

保存(Ctrl+S)して実行(Ctrl+R)してみましょう。
最初に実行したときは、このように警告がでます。
[権限を確認]をクリックし、

このGoogleフォーム、スプレッドシートで使っているGoogleのアカウントをクリックし、

次のような表示にもめげず、[詳細]→[○○○(安全ではないページ)に移動]をクリックすると、プログラムを実行できます。
(最初にプログラムを実行するときに、一連の処理をしなければいけません)

再度、プログラムを実行すると、このように、メールが届くはずです。
自分に送ってみましょう。

 

GASのGmailの設定を変更

さらに手を加えていき、実践的にしていきます。

GmailApp.sendEmail(○、△、□);

GmailApp.sendEmail(mail_address、title、body);
を変えます。
このmail_address、title、bodyに何を入れるかを、別に指定するのです。
こうしたほうが、使いやすくなり、見やすくなります。

このようにmail_address、title、bodyを設定しました。

mail_addressは、フォームを入力していただくごとに変わるので、letで指定します。
今は、まず、サンプルとして、info@gmail.comと入れました。

titleは、固定なので、constで指定し、"で囲んで、文章を入れます。

bodyは、本文。
長くなるので、Googleドキュメント(Wordのようなもの)で、つくるのがおすすめです。
新規のGoogleドキュメントを開き、本文を入れていきましょう。
Googleフォームの項目を使いたいので、お名前(姓)を{}で囲んで入れましょう。

さらに、GoogleドキュメントのURLで、d/のあとから、/editの前までをコピーし、constで指定します。

指定したドキュメントから、

const doc = DocumentApp.openById('1xcGLGwsr2sbdFghi8tscUfRTWePAQxPGAbsF3wf6yDE’);

さらに、テキストを読み取ります。
このbodyをメールで送るのです。

const body = doc.getBody().getText();

 

実行してみるとこうなります。

実行前にはまたこれが出るので、対処しましょう。
Googleドキュメントの承認です。

 

GASでスプレッドシートから読み込む

次に、Googleフォーム→Googleスプレッドシートに連動したデータを、送るメールで使えるようにしていきます。

スプレッドシート(今使っている)を読み込み、

const sp = SpreadsheetApp.getActiveSheet();

その最終行を読み取ります。
フォームに入力されたときに送るようにするので、スプレッドシートの最終行のデータに送ればいいからです。
let row = sp.getLastRow();

たとえば、2行目なら、セルB2のデータが「お名前(姓)」なので、

let name = sp.getRange('b’ + row).getValue();
とnameを指定します。
rowには、今後、2,3,4,5……が入ってくることになるのです。

メールアドレスは、D列を読み込みます。

 
let mail_address = sp.getRange('d’ + row).getValue();
 
実行するとこんな感じです。
スプレッドシートからデータを読み取ることができます。

そして、この
{お名前(姓)}
を読み取ったデータ(name)に置換していきます。
置換に使うのは、replaceです。

これで、入力していただいたデータを、メール中に挿入できます。

最後に、差出人名と差出人メールアドレス。
差出人名は、my_nameにconstで指定し、差出人メールドレスは、my_mail_addressに、同じくconstで指定します。

opitonで、これらを指定するので、

constoption ={from:my_mail_address,name: my_name};

とし、

GmailApp.sendEmail(mail_address,title,body,option);

とメール送信時の設定にくわえましょう。

これでメールを送る部分は完成です。

トリガー(自動返信条件)を決める

次に、このメール送信のプログラムを自動実行(自動返信)する設定をします。
左側の時計のアイコンをクリックし、右下の[トリガーを追加]をクリック、「イベントの種類を選択」で[フォーム送信時]を選んで保存しましょう。

これで、フォームに入力があったときに、さきほどのプログラムが自動的に実行、つまり自動返信されます。

ちゃんと自動返信されたかは、左の[実行数]というメニューでみることもできますが、

最後に、こういったものを入れておくのもおすすめです。

GmailApp.sendEmail(my_mail_address,title,body,option);

自分のメールアドレス(my_mail_address)にも同じものを送ります。

最終的なプログラムはこちらです。
ぜひ書いてみていただければ。

function myFunction() {


//■スプレッドシートから読み込む

  const sp = SpreadsheetApp.getActiveSheet();
  let row = sp.getLastRow();
  
  //姓
  let name = sp.getRange('b' + row).getValue();


//■メール送信
  //メールアドレス
  let mail_address = sp.getRange('d' + row).getValue();
  
  //メールタイトル
  const title = 'セルフマガジンプロジェクトへのお申込みありがとうございました!';
  
  //メール本文
  const doc = DocumentApp.openById('1xcGLGwsr2sbdFghi8tscUfRTWePAQxPGAbsF3wf6yDE');
  const body = doc.getBody().getText().replace('{お名前(姓)}',name);

  //自分の情報
  const my_name ='井ノ上 陽一';
  const my_mail_address= 'y-inoue@timeconsulting.co.jp';
  const option ={from:my_mail_address,name: my_name};
  
  //メール送信
  GmailApp.sendEmail(mail_address,title,body,option);

  //自分へメール送信
  GmailApp.sendEmail(my_mail_address,title,body,option); 

}


■編集後記
昨日は、タスク実行デー。
銀行の手続きという気が重い案件もクリアできました。

Kindleで、浦沢直樹さんのMONSTERが発売されていて……。
買い始めてしまいました。
全巻買うんだろうな……と。
1巻ずつ楽しみます!

屈指の名作。記憶を消去してもう一度楽しみたいです。

1日1新Kindle『1日1新』Instagram『1日1新』
三井住友銀行キャッシュカード再発行
Nikon F3T
Nikon Ai 35mmF1.4

■娘(4歳11ヶ月)日記→Kindle『娘日記』・ Kindle『娘日記Ⅱ』
ちょっと前にぶつぶつができてから、風呂での洗顔を入念にするようになりました。
ただ、自分で洗うのは怖いらしく、ママに。
だいたいパパと風呂に入っているのですが、ママを途中で呼んでいました。
パパが信用できないとのことで。
おととい、「1回、パパに洗わせてみようよ」と、試しにやってみると、大丈夫だったらしく、その日からパパ担当になりました。
合格だったようです。

気合い入れて丁寧に洗いましたので。