Gmailで差し込み送信する方法(GAS編)

情報管理LOGの@yoshinonです。
最近、更新頻度がかなり低くなっており申し訳ないです。
重要なお知らせを一番下に書きましたので、気になる人は参照してください。
さて、前回の続きです。
Googleフォームで送られたスプレッドシートのデータを使って、Gmailに差し込み送信をする場合についてです。前回は、アドオンを使用してやる方法について書きました。今回は、本丸であるGASを利用しての一括差し込み送信についてです。下の方にスクリプトを載せていますが、正直あまり上手くないです。もしも、さらにブラッシュアップしてくださる方がいれば、ぜひともお任せしたい感じです。
それでも、私の環境では動きましたので、ぜひお試しあれ!
【 Gmailで差し込み送信する方法(GAS編) 】 1.事の発端 2.GASでやってみる 3.実際に送信してみる |
事の発端としては、Twitter上でDMでこのようなメッセージをいただいたからです。

元となった記事は、こちらです。
かなり懐かしい記事ですね。QRコードをGoogleフォームのデータを元に発行するというものでした。今でも有効で受付業務とかで使えますよ。
GoogleフォームでバーコードやQRコードを発効するシステムを組んでみる
前回は、「GoogleスプレッドシートでバーコードやQRコードを表示させる方法」についてやりました。Web上のジェネレーターと上手く組み合わせれば、かなり簡単にできることがわかりやすよね?今回は、それをさらに進めて、Googleフォームで入力された情報を元に、バーコードやQRコードを発効するシステムを組んでみたいと思います。
そういうわけで、これはやらないわけにはいきませんね。
そこで、一つ目の方法として、アドオンで対応するという記事を書きました。
Gmailで差し込み送信する方法(アドオン編)
以前の記事でGoogleフォームで受付を作成し、自動でバーコードを生成する方法について書きました。 GoogleフォームでバーコードやQRコードを発効するシステムを組んでみる そうしたところ、TwitterのDMにメールで「自動でバーコードを送るシステムはできないか?」とお問合せがありました。なるほど、ブログ冥利に尽きますね。
これは、非常に簡単ですが、簡易的なものです。
今回は、さらに一歩踏み込んでGAS(Google App Script)で組んでみたいと思います。
GASですが、私自身は、現在勉強中みたいな感じで、基本的にはネットの皆さんのスクリプトをカスタマイズして使用しているみたいな感じになっています。なので、上でも書きましたが、もしもGASに詳しい人がいらっしゃいましたら、ぜひとも見ていただき、「この部分は、こうしたらよいよ~」と指摘してくださるとありがたいです。
今回のフォームは、こんな感じです。
で、生成されたスプレッドシートは、こんな感じ。

バーコード自動Gmail返信システム(回答)
※使用するときは、必ず「ファイル」→「コピーを作成」で、自身のGoogleドライブにコピーして使用してください。
一応簡単に説明すると、E列までは、Googleフォームで吐き出されたものが反映されていて、FとG列は、そのデータを元に生成しています。
F2に
=arrayformula(if(A2:A498="","",ARRAYFORMULA(value(A2:A498)*100000)))
G2に
=arrayformula(if(A2:A498="","",ARRAYFORMULA("http://barcode.design/barcode.asp?bc1="&F2:F498&"&bc2=6&bc3=3.5&bc4=1.2&bc5=1&bc6=1&bc7=Arial&bc8=15&bc9=1")))
と入力することで、Googleフォームからデータが送られても、行が挿入された感じになって、数式が飛ばされるということがなくなります。したがって、2行目だけはダミーデータとして残して置いてください。
ARRAYFORMULA関数ですが、このあたりに関しては、以下で解説していますので参照してください。
これは知っておきたいGoogleスプレッドシートの独自関数
前回は、Googleスプレッドシートの良さについて語りました。Googleスプレッドシートがエクセルよりもすごいと思う点を書いていく私の中でスプレッドシートは、エクセルとは別もののアプリケーションに進化したと思っています。確かに外観もできることも一見すると、かなり似通っていますが、コンセプトが違います。さて、...
では、スクリプトです。
作成するときは、スプレッドシート上で「ツール」→「スクリプトエディタ」でGASを開きます。大丈夫!怖がらなくて良いよ!

一度、1~4行目まで全部消して、

以下のスクリプトをコピペしてください。
さらに、Gmailに送信するためのメールのひな形を準備する必要があります。これは、Googleドキュメントを使用します。
※スクリプト内で全て完結する方法も検討したのですが、ある程度自由度と分かりやすさがあった方が汎用性があるだろうという判断です。
こちらが、そのファイルになります。
※もしも、そのまま流用する場合は必ず、「ファイル」→「コピーを作成」でご自身のGoogleドライブに保存してからご利用ください。
バーコード送信本文(差し込み用)
今回、作成したのは、こんな感じのフォーマットです。

データはこちらです。
バーコード送信本文(差し込み用)
※必ず使用するときは、「ファイル」→「コピーを作成」でご自身のGoogleドライブに保存してからお使いください。
このフォーマットの{}で囲われている部分が、スクリプトによって置換されるということになっています。
スクリプトは、このままでは使えないので改造する必要があります。
赤字の「GoogleドキュメントのURL」は、先ほどのGoogleドキュメントのURLをそのまま貼り付けます(もちろん、自身のGoogleドライブに保存した方のです)。
「メールの件名」は、送信したときのメールのタイトルになります。その部分も書き替えましょう。

変数の設定もします。紫色の部分をスプレッドシートに対応する名称にしておくと分かりやすいかもしれません。

次にどのようにGoogleドキュメントを置き換えていくのかについて記述していきます。
赤字の部分は、Googleドキュメントの{}と同じにしてください。その部分が、スプレッドシートの値で差し込まれる仕組みです。また、紫色の部分は、上記の紫色の部分と必ず揃えてください。

{名前}のところだけ、後ろに「/gi」と入っていますが、これはGoogleドキュメント上で複数箇所記述されており、複数箇所の置き換えする場合記述しなくてはなりません。
※もしも、不安なときは、まずはこのまま使ってみて、徐々に改造していくと良いかもしれません。
では、実際に送信してみたいと思います。
先ほどのスプレッドシートをそのまま使用する場合は、Googleフォームでスプレッドシートを生成する場面で、そのスプレッドシートを指定してください。
もう一度書きますが、2行目のダミーデータは、消さないでください。数式が消えてしまいます。
また、スクリプトを実行するときに、初回のみ「承認」を要求されます。
以下の手順で承認してください。
まずは、「権限を確認」をクリック。

以下のようなダイアログが出てくるので、「詳細」をクリック。

「(安全でないページ)に移動」という怖い文面が出てきますが、気にしないでOK!
そこをクリックします。

そして、「許可」をクリック。

これで、準備OKです。
あとは、もう一回「実行」を押せば、スクリプトが発動します。
ちゃんと、メールが届くとこんな感じになります。


GAS便利だよね
GASに関しては、まだまだ勉強中の身なので、たぶん見る人が見ればツッコミどころがあるスクリプトかもしれません。一番最初に書いたように、ぜひ気になる点などございましたら、DMください。
さて、情報管理LOGですが、現在、本業が忙しすぎて更新が滞っています。この状態は、11月上旬まで続く見込みになっています。情報管理LOGを楽しみにしてくださっている方には、申し訳ないのですが、11月上旬まで不定期連載とさせてください。私自身、書いていないと落ち着かないこともあるので、更新停止にはならないと思います。どうぞ、長い目でよろしくお願いいたします。
- 関連記事
-
- GoogleカレンダーのURLパラメータ解説
- Gmailで差し込み送信する方法(GAS編)
- Googleカレンダー一括登録の最終解決版か?すごいのを発見した