質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Gmail

GmailとはGoogleによって提供されているウェブメールのサービスのことです。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

メール

メールは、コンピュータネットワークを利用し、 情報等を交換する手段のことです。

Q&A

1回答

1679閲覧

GAS 問い合わせ件数、行数が異なるメールをスプレットシートへ転記したい。

kokoc

総合スコア0

Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Gmail

GmailとはGoogleによって提供されているウェブメールのサービスのことです。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

メール

メールは、コンピュータネットワークを利用し、 情報等を交換する手段のことです。

0グッド

0クリップ

投稿2021/07/13 10:50

編集2021/07/14 13:47

前提・実現したいこと

件名が一致しているメールを取得し、
お客様名と問合せ内容をを取得してスプレットシートへ転記したい。

問合せの基本的なフォーマットは以下の通りです。


■ホームページ
お客様よりお問い合わせです。至急ご対応をお願いします。


【名前】aaa
【名前カナ】 aaa
【メールアドレス】 aaa@gmail
【電話番号】 -
【お問い合わせ内容】
aaaa
aaaa
aaaa

=====================================================================

■今回のお問い合わせは、合計 2  件です。
商品詳細は以下のとおりです。

〔商品番号〕99999999
〔商 品 名〕あああ ああああ
〔 料 金 〕100,000円
〔問合番号〕99999999
https://www.

〔商品番号〕99999999
〔商 品 名〕あああ ああああ
〔 料 金 〕100,000円
〔問合番号〕99999999
https://www.

=====================================================================

発生している問題・エラーメッセージ

問題1:問い合わせの件数が1件~5件となるケースがあり、その都度商品番号~問合番号を取得して配列させる必要がある。 問題2:【お問い合わせ内容】が自由記入欄の為、商品詳細を行数指定する事が以下のコードだと難しい。

該当のソースコード

function getMail() { // 検索条件に該当するスレッド一覧を取得 let threads = GmailApp.search('subject:お知らせメール -label:処理済み'); threads.forEach(function(thread) { let messages = thread.getMessages(); messages.forEach(function(message) { let plainBody = message.getPlainBody(); let date = plainBody.match(/お問合せ日時:(.*)/); let name = plainBody.match(/名前(漢字):(.*)/); let email = plainBody.match(/メールアドレス:(.*)/); let tel = plainBody.match(/TEL:(.*)/); let name = plainBody.match(/商 品 名:(.*)/); let sheet = SpreadsheetApp.getActive().getSheetByName('aaaa') let lastRow = sheet.getLastRow() + 1; sheet.getRange(lastRow, 1).setValue(date[1]); sheet.getRange(lastRow, 2).setValue(name[1]); sheet.getRange(lastRow, 3).setValue(email[1]); sheet.getRange(lastRow, 4).setValue(tel[1]); sheet.getRange(lastRow, 5).setValue(name[1]); }); let label = GmailApp.getUserLabelByName('処理済み'); thread.addLabel(label); }); }

試したこと

問合せが1件の場合、
該当検索ワードが1つの為、実行できるのですが、
2件以上の場合、該当検索ワードが2つ以上の為、エラーが出てしまい…
かなり長時間ネットで調査したのですが…
GAS初心者の為構築できませんでした。

大変恐れ入りますが、ご教授いただけますと幸いです。

補足情報(FW/ツールのバージョンなど)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dodox86

2021/07/13 11:14

Google Apps ScriptはJavaScriptベースであり、更に、JavaScriptとJavaは別物のプログラミング言語なので、Javaは関係ありません。
kokoc

2021/07/13 12:12

ご指摘ありがとうございます! 修正します!!
guest

回答1

0

投稿2021/07/15 12:50

gas.engine

総合スコア608

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問