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でスプレッドシートの列データを配列として取得する方法
  7. GASで列データの配列に特定の値が含まれているかを判定するsomeメソッドの使い方
  8. GASでフォーム送信メールからデータを取得してスプレッドシートに蓄積するツールの完全版

  投稿者プロフィール

タカハシノリアキ株式会社プランノーツ 代表取締役
株式会社プランノーツ代表、コミュニティ「ノンプロ研」主宰。1976年こどもの日生まれ。東京板橋区在住。「ITで日本の『働く』の価値を上げる!」をテーマに、VBA&GASの開発、講師、執筆などをしております。→詳しいプロフィールはコチラ
★ご依頼・ご相談はお気軽にどうぞ!→お問い合わせはコチラ
★フォロー頂ければ嬉しいです。

コメント