Google Apps Scriptでメールから正規表現で抽出したデータをスプレッドシートに蓄積する方法

★気に入ったらシェアをお願いします!


bricks

photo credit: Khuroshvili Ilya via photopin (license)

みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。

Google Apps Scriptでフォーム送信メールからデータを抜き出してスプレッドシートに登録するツールを作成しています。

前回の記事はコチラです。

Google Apps ScriptでGmailの受信メールから正規表現でデータを抽出する
Google Apps Scriptでフォーム送信メールからデータを抽出してスプレッドシートに登録するツールを作成しています。今回はGmailに届いたメールから正規表現でデータを抽出するスクリプトを紹介します。

Gmailに届いたメールから正規表現でデータを取得するスクリプトを作成しました。

データを取り出すことはできましたので、あとはスプレッドシートに蓄積していく処理が必要ですね。

とうことで、今回はGoogle Apps Scriptでメールで取得したデータをスプレッドシートに蓄積する方法をお伝えします。

では、行ってみましょう!

前回のおさらいと今回のお題

まずは前回のおさらいから。

作成したスクリプトはコチラでした。

だいぶいい感じの長さになってきましたね。

まずfetchDataはメールの本文などの文字列を渡して、そこから正規表現を使って文字列preとsufに挟まれている文字列を返す関数です。

myFunctionでは、Gmailから「[テスト]フォーム登録通知」という件名のスレッドのメッセージを取得して、それぞれのメッセージから「名前」「年齢」を取得するというものです。

このmyFunctionの8,9行目を、スプレッドシートに蓄積する処理に変更していけばよいですね。

メールから取得したデータをスプレッドシートに登録する

では、データを蓄積するために以下のようなスプレッドシートを用意しました。

A列に名前、B列に年齢を蓄積していきたいと思います。

GASでデータを蓄積するスプレッドシート

アクティブなシートを取得する

このスプレッドシートにバインドする形でスクリプトを組めば、以下getActiveSheetメソッドでこのシートを取得できますね。

SpreadsheetApp.getActiveSheet()

実際のスクリプトは以下のようになります。

コンテナバインドスクリプトについては、以下の記事もご覧ください。

初心者でも簡単!Google Apps Scriptでスプレッドシートのカスタム関数を作る方法
Google Apps Scriptを使えば、簡単にスプレッドシートのカスタム関数を作ることができます。今回は、消費税の税込計算をする関数を例に、初心者でもできる自作スプレッドシート関数の作り方をお伝えします。

スプレッドシートの最後尾にデータを追加する

スプレッドシートにデータを蓄積するのは簡単です。Sheetオブジェクトに対してappendRowメソッドを使えば、その最後尾にデータを追加してくれます。

Sheetオブジェクト.appendRow(配列)

これだけで、Sheetオブジェクトの最後尾の行に配列で与えたデータをA列から順番に追加してくれます。

Google Apps Scriptでチャットワークからの打刻情報をシートの最終行に追加する方法
Googleスプレッドシート上に勤怠管理集計システムを作っています。今回はGoogle Apps Scriptでチャットワークからの打刻情報をappendRowでシートの最終行に追加する方法です。

ですから、今回の場合、myFunctionの8,9行目の代わりに

を入れてあげればよさそうな感じがします。

メールから抽出したデータをスプレッドシートに追加するスクリプト

以上を踏まえてmyFunctionをまとめたのが、以下スクリプトです。

これにて実行すると…

GASで最後尾の行にデータを追加した

おお、できちゃいました。簡単ですね。

まとめ

以上、Google Apps Scriptでメールのデータを抽出してスプレッドシートの最後尾に追加するスクリプトを紹介しました。

  • スプレッドシートのコンテナバインドスクリプトを作成してgetActiveSheetメソッドでシートを取得
  • appendRowメソッドでシートの最後尾の行にデータを追加する

…ですが、もう一回実行すると…

GASで同じデータが蓄積されてしまう

同じメールからデータを取得してきちゃうんです。

次回はこの問題を解決していきます。

Google Apps ScriptでGmailのメッセージIDを取得する方法
Google Apps Scriptでフォーム送信メールからデータを取得してスプレッドシートに蓄積していくツールを作っています。今回は、GmailメッセージのメッセージIDを取得する方法です。

どうぞお楽しみに!

連載目次:GASで正規表現を使ってデータを抽出&登録

正規表現を使うとGoogle Apps ScriptでメールやHTMLドキュメントからデータを抽出することができます。本シリーズでは、フォーム送信の通知メールからデータを抽出してスプレッドシートに追加するツールの作成を目指します。
  1. Google Apps Scriptで正規表現を使って必要な情報を抽出する最も簡単なスクリプト
  2. Google Apps Scriptで正規表現でマッチした文字列から不要な部分を削除する
  3. Google Apps ScriptでGmailの受信メールから正規表現でデータを抽出する
  4. Google Apps Scriptでメールから正規表現で抽出したデータをスプレッドシートに蓄積する方法
  5. Google Apps ScriptでGmailのメッセージIDを取得する方法
  6. Google Apps Scriptでスプレッドシートの列データを配列として取得する方法