(license)みなさん、こんにちは!タカハシ(@ntakahashi0505)です。Scriptでフォーム送信メールからデータを抽出してスプレッドシートに登録するツールを作成しています。Scriptでフォーム送信メールからデータを抽出してスプレッドシートに登録するツールを作成しております。今回はGASで正規表現で抽出した文字列から、欲しいデータのみを取り出す方法です。tonari-it.com2017.11.08正規表現により、メール風の文字列から欲しいデータを抽出する方法についてお伝えしました。いえ、「メール風」の文字列でしたので、実際のメッセージからできるのか?というのを今回立証していきます。ScriptでGmailに届いたメールから正規表現でデータを抽出するスクリプトを紹介します。前回のおさらい前回作成したスクリプトはコチラです。'高橋様\nお世話になっております。\n\n名前:鈴木\n年齢:30才\n\n以上です。'高橋様\nお世話になっております。\n\n名前:鈴木\n年齢:30才\n\n以上です。data;}関数fetchDataがキモで、与えた文字列strから、正規表現を使って文字列preと文字列sufに囲まれている文字列を抽出するというものです。myFunctionを修正してGmailから対象のメッセージだけを取得する対象のメッセージの本文からfetchDataでデータを抽出するという処理を作っていけばOKですね。Gmailの受信メールから正規表現でデータを抽出するまず、どんなメッセージを対象とするかですが、こんなメールです。データを取得するメッセ―ジは常に「[テスト]フォーム登録通知」という件名で送られてきます。その本文から「名前」「年齢」を取得していきたいということです。Gmailからのメッセージ取得については以下記事も参考になりますので、合わせてご覧ください。Scriptで過去の問い合わせメールを特定条件で検索して取り出す方法です。tonari-it.com2016.04.26searchメソッドでGmailからスレッドを検索するGmailから特定の条件でスレッドを検索するにはGmailAppクラスのsearchメソッドを使いますね。書式は以下の通りです。最大取得数)検索条件は、Gmailの画面でスレッドを検索すると同様の文字列を指定できます。今回は、件名が「[テスト]フォーム登録通知」のスレッドを取得したいのでsubject:([テスト]フォーム登録通知)とすればOKです。今回は全てのスレッドを検索対象とするので、開始インデックスは0を指定、最大取得数は1日のGmailの読み書き制限とトリガーの頻度によって決まってきますが、控えめに30としておきましょう。いうことで、この部分は以下のように作ればOKです。30);スレッドの配列からメッセージの配列を取得するsearchメソッドで取得できるのはスレッドの配列です。Gmailでは、関連する(とGmailが判断した)メッセージは同じスレッドに紐づいていきます。スレッドが親で、その配下にメッセージがいくつかぶら下がるという構造になります。正規表現でデータを抽出スプレッドシートに追加という流れになります。それで、スレッドの配列からメッセージの二次元配列を取得するには、GmailAppクラスのgetMessagesForThreadsメソッドを使います。GmailApp.getMessagesForThreads(スレッドの配列)実際には、以下のスクリプトになります。GmailApp.getMessagesForThreads(threads);各メッセージについて本文を取得してデータを抽出する取得したメッセージの二次元配列についてループをして、各メッセージについてfetchDataの結果をログ表示する部分は以下のようになります。'才'));}}getPlainBodyメソッドはメッセージの本文のプレーンテキストを取得するメソッドです。Messageオブジェクト.getPlainBody()受け取るメールがHTMLメールである場合は、余計なHTMLタグを取り除くためにgetPlainBodyメソッドを使うほうが良いです。改行コード\nから、キャリッジリターン\rに変更していますが、Gmailのメッセージの改行はキャリッジリターンですので変更しました。Gmailから対象のメッセージを検索してデータを抽出するスクリプトとその実行まとめると、以下のようなスクリプトになります。'才'));}}}実行すると、以下のような結果が得られました。まとめ以上、Gmailの受信メールから正規表現でデータを抽出するスクリプトを紹介しました。Gmailからsearchメソッドでスレッドを検索するgetMessagesForThreadsメソッドでスレッドの配列からメッセージの二次元配列を取得するメッセージから本文を取り出して正規表現でデータを抽出する(Gmailの改行はキャリッジリターン\rだった)あとはスプレッドシートに追加していく処理が必要ですね。次回以降進めていきます。Scriptでフォーム送信メールからデータを抜き出してスプレッドシートに登録するツールを作成しています。今回はメールで取得したデータをスプレッドシートに蓄積する方法をお伝えします。ScriptでメールやHTMLドキュメントからデータを抽出することができます。本シリーズでは、フォーム送信の通知メールからデータを抽出してスプレッドシートに追加するツールの作成を目指します。プランノーツ代表、コミュニティ「ノンプロ研」主宰。ITで日本の『働く』の価値を上げる!」をテーマに、VBA&GASの開発、講師、執筆などをしております。→詳しいプロフィールはコチラ★ご依頼・ご相談はお気軽にどうぞ!→お問い合わせはコチラ★フォロー頂ければ嬉しいです。「コミュニティ+講座」形式で継続性&教え合える環境も提供。!ノンプログラマーがプログラミングスキルを身に着ける支援ををするコミュニティ。セミナー・もくもく会・Facebookグループのサポートで「自らで学び続ける力をつける」支援、「教え合うことで学びの価値を上げる」場の提供をしています。SQLのデータベースにアクセスする方法をシリーズでお伝えしています。SQLのデータベースにレコードを追加する方法です。SQLのデータベースにアクセスする方法をシリーズでお伝えしています。SQLインスタンスを作成する方法です。2019」の参加レポートシリーズ。Cloudででデジタル変革を成功させるためにすべき3つのこと」のセッションを紹介します。ScriptのsetOptionメソッドでグラフタイトル・凡例を編集する方法setOptionメソッドを使って、グラフタイトル、凡例を編集するテクニックを紹介します。見た目を整えることで、グラフの意味するところ相手に正確に伝えることができます。Scriptのクラス」をテーマにシリーズ連載をお送りしております。今回は、GASでスプレッドシートの表をインスタンス配列化する方法をおお送りします。ScriptでチャットワークAPIを操作してチャットワークに期限付きのタスクを追加する方法です。その際に使うUNIX時間の取得方法、数値の固定小数点表記の方法についても触れます。社内でのGAS構築の際に大変参考にさせていただきました。ありがとうございます。自分の勉強不足でしたら大変申し訳ないのですが、fetchdataの第3引数が\nの時(https://tonari-it.com/gas-regexp-replace-new/)と\r(https://tonari-it.com/gas-gmail-regexp-fetch-data/)の時がございます。これらの違いについてはどのようなものになるのでしょうか。PMTTMさん記事内に以下のように記載しているとおりですね。改行コード\nから、キャリッジリターン\rに変更していますが、Gmailのメッセージの改行はキャリッジリターンですので変更しました。改行コードはOSやサービスによって、\nだったり、\rだったり、\r\nだったり変わります。「コミュニティ+講座」形式で継続性&教え合える環境も提供。詳細・お申込はこちら隣ITを応援する当ブログを「応援したい!」「役に立ったよ!」というお気持ちを、コチラからお支払いただくことができます。日々更新の活力倍増いたします。※PayPalアカウントが必要です。※金額は変更可能です。Platform23HTML・CSS32iPhone・アプリ29Monaca・スマホアプリ開発7PC全般・Windows86PowerPoint・VBA28Python87RPA1VBScript15Vue.js・JavaScript13WEBサービス・クラウド68WordPress・ブログ88Word・VBA42コミュニティ・イベント108セミナーのお知らせ11チャットワーク72データ分析・アクセス解析40仕事・生産性・働き方73動画配信8商業出版21起業・フリーランス72電子書籍・Kindle3運営会社プランノーツは"IT×働き方改革"をお手伝いする会社です。「コミュニティ+講座」形式で継続性&教え合える環境も提供。詳細・お申込はこちら隣ITを応援する当ブログを「応援したい!」「役に立ったよ!」というお気持ちを、コチラからお支払いただくことができます。日々更新の活力倍増いたします。※PayPalアカウントが必要です。※金額は変更可能です。Platform23HTML・CSS32iPhone・アプリ29Monaca・スマホアプリ開発7PC全般・Windows86PowerPoint・VBA28Python87RPA1VBScript15Vue.js・JavaScript13WEBサービス・クラウド68WordPress・ブログ88Word・VBA42コミュニティ・イベント108セミナーのお知らせ11チャットワーク72データ分析・アクセス解析40仕事・生産性・働き方73動画配信8商業出版21起業・フリーランス72電子書籍・Kindle3運営会社プランノーツは"IT×働き方改革"をお手伝いする会社です。RowSourceプロパティとAddItemメソッド2020.01.21GASでGoogleスライドのSlideオブジェクトの概要とその取得方法2020.01.162020.01.24Facebookページいつも隣にitのお仕事タイトルとURLをコピーしました。