\r\n\r\n

google scriptsを使ってgoogleフォームでメールを送信する方法

Googleスクリプトを使用して、フォームやドキュメントなどのGoogle生産性ツールを自動化する方法を学び、時間の節約につなげましょう...

googlescriptsは、フォームやドキュメントなどのGoogle生産性向上ツールを自動化するために使用できる強力なツールです。自動でメールを送信できるため、非常に強力なツールとなっています。

もしかしたらあなたは、Google Formsで計算式を自動計算するために、毎月上司にメールを送りたいと思っている社員かもしれません。あるいは、業績データや近況報告など、チームメンバーへのメール送信に多くの時間を費やしているマネージャーもいるかもしれません。この記事で学ぶgooglescriptsの関数は、これらの作業やその他多くの作業に役立ちます。

Google Scriptがあなたのパーソナルアシスタントとして、すべての作業を代行します。

メール送信のためのワークシートの設定

Googleスクリプトにgooglesheets経由でメールを送らせるための最初のステップは、スクリプトにメールを送らせたいすべての人の名前、メールアドレス、メッセージを含むテーブルを適切に設定することです。

私の場合は、まずスプレッドシートに、その月に公開されたすべての記事をgoogle ****yticsから自動的にインポートするように設定しています。各著者が出版した記事をカウントするために「全著者」テーブルを作成し、現在、各著者に統計情報を記載した電子メールを送信したいと考えています。

まず、現在のスプレッドシートに新しいワークシートを追加し、メール専用のワークシートを作成し、「メール送信」と名付けます。

この新しい「メール送信」ワークシートでは、ヘッダーを作成する必要があります。このスプレッドシートの各行は、送信される個々の電子メールを表します。この例では、受信者の名前、電子メールアドレス、そしてスクリプトにまとめたい情報の断片を入れるテーブルを作成したわけです。

静的なメッセージと動的なメッセージをカラムでつなぎ合わせることで、あらゆるサイズと構造のメールを構築することができます。

静的なメッセージは、私がセルに入力したテキストだけです。今月も変わりません。メールメッセージの一部に過ぎず、常に同じままです。ただし、毎月変更されるデータについては、表計算ソフト内の他のワークシートから該当データを取り込む機能を用意しています**。

ここでは、自動化されたレポートを表示するためにワークシートを開くたびに、クリックすることでメール送信Googleスクリプトを実行し、結果をみんなに配布するためのメニュー項目が用意されているということです。この新しいメニューのカスタマイズ方法については、この記事の下部で説明します。

ワークシートの作成が完了すると、以下のような表示になります。

個人メールのワークシートがすべて揃ったので、いよいよスクリプトを書くことにします

自動メールスクリプトの作成

スクリプトを書くには、「ツール」メニューから「スクリプトエディター」を選択し、「スクリプトエディター」を使用する必要があります。

スクリプトエディタは下図のようになっています。右側のペインの一番上に新しい関数を配置する必要があります。

下記のスクリプトをコピーして、スクリプトエリアに貼り付けるだけです。

function sendArticleCountEmails() { var ss = SpreadsheetApp.getActiveSpreadsheet(); ss.setActiveSheet(ss.getSheetByName("Send-Emails")); var sheet = SpreadsheetApp.getActiveSheet(); var dataRange = sheet.getRange("A2:F4"); var data = dataRange.getValues(); for (i in data) { var rowData = data[i]; var emailAddress = rowData[1]; var recipient = rowData[0]; var message1 = rowData[2]; var message2 = rowData[3]; var parameter2 = rowData[4]; var message3 = rowData[5]; var message = 'Dear ' + recipient + ',' + message1 + ' ' + message2 + ' ' + parameter2 + ' ' + message3; var subject = 'Your article count for this month'; MailApp.sendEmail(emailAddress, subject, message); }}

このスクリプトは少し複雑に見えるかもしれませんが、実際には全く複雑ではありません。それぞれの行が何をやっているのかがわかるように、分解してみましょう。

分解コード

この機能を正しく動作させるためには、すべての電子メールを保存しているワークシートが実際にアクティブなワークシートであることを確認する必要があります。そうでないと、この後がうまくいきません。この2行はそのためのものです。

var ss = SpreadsheetApp.getActiveSpreadsheet();ss.setActiveSheet(ss.getSheetByName("Send-Emails"));

次に、そのテーブルからすべてのデータを抽出する必要があります。このワークシート.GetRange()メソッドは、引用符で指定された任意のセル範囲から情報を抽出します。次にdataRange.getValues()メソッドですが、これは実際に値を取り出し、dataという2次元配列に格納するものです。

var sheet = SpreadsheetApp.getActiveSheet();var dataRange = sheet.getRange("A2:F4");var data = dataRange.getValues();

すべてのデータが配列に格納されたので、forループを使って配列の中を繰り返し処理することができます。配列の各要素は、1 行に 1 列の要素を含む 1 次元配列である。各列は番号で参照できる。

var rowData = data[i];var emailAddress = rowData[1];var recipient = rowData[0];var message1 = rowData[2];var message2 = rowData[3];var parameter2 = rowData[4];var message3 = rowData[5];

上図のように、列の要素をrowDataという1次元の配列に引き出しています。次に、配列の2番目の要素であるrowData[1]を参照して、2番目の列を参照します(電子メールアドレスを取得するため)(配列の最初の要素は常に0です)。

この機能の次のステップは、メールの本文を構成するすべてのメッセージセグメントをまとめることです。また、"キャリッジリターン "という文字を使うことで、メールの内容を非常にきれいに整形することができるのも嬉しいポイントです。以下は、電子メールの本文を連結したものです。

var message = 'Dear ' + recipient + ',' + message1 + ' ' + message2 + ' ' + parameter2 + ' ' + message3;

文字は、シリアルコマンドです。実際の静的テキストは、1つの逆カンマの中に配置されます。そこで、受信者変数の前に「Dear」という単語を置くと(「Dear」にはスペースがあることに注意)、このメッセージはまとまる。

次に、最後にキャリッジリターン文字を2つ付けます。これにより、実際のメッセージは本文の2行下から始まります。次に、最初のメッセージの段落、スペース、2番目のメッセージの段落、スペース、毎月メッセージに**される変数、そして最後にメッセージの最後の部分を追加してください。

メッセージフラグメントはいくつでも作成でき、より多くのカラムを使用することで完全なメッセージフラグメントを作成することができます。

最後の数行のコードでは、メールの件名だけを設定し(必要に応じてスプレッドシートのデータを含めることもできます)、最後に sendmail() メソッドを実行します。

スクリプトの起動方法

スクリプトエディタウィンドウに戻り、"onOpen "関数を検索するだけです。関数がある場合、おそらく括弧の中にたくさんのコードが表示されることでしょう。そのコードの一番下に行き、以下の行を**してください。

var spreadsheet = SpreadsheetApp.getActive();var menuItems = [ {name: 'Send Emails', functionName: 'sendArticleCountEmails'}];spreadsheet.addMenu('Send Emails', menuItems);

functionNameパラメータには、一重引用符で囲んだ正確な関数名を入力することを確認してください。これにより、ワークシートを開くたびに、カスタムメニュー項目がワークシートに読み込まれます。

これで、毎月スプレッドシートを開いて全データを見るときは、メニューの「メール送信」をクリックするだけでよくなりました。これは、あなたのために新しい機能を実行し、すべてのメールを送信します。今まで何時間もかかっていた仕事が、マウスを1回クリックするだけでできるようになりました。

Google Scriptで時間短縮

これは、Google Scriptsを使って自動化することで時間を節約できる多種多様なもののほんの一例です。例えば、Google Scriptsを使えば、Google Analyticsのレポート作成を自動化することができます。大変なのは、最初の作業が少し必要なことくらいで、スクリプトを使って自動化を設定する分には、かなりの時間を節約できます。その時間で他に何ができるかを考えてみてください。

Googleスクリプトを使って生産性を向上させたことがありますか? あなたの例を下のコメント欄で共有してください。

あなたが興味を持っているかもしれない記事

匿名者
匿名者

0 件の投稿

作家リスト

  1. admin 0 投稿
  2. 匿名者 0 投稿

おすすめ