質問するログイン新規登録
Google Apps Script

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

Q&A

1回答

2689閲覧

Gmailの内容をスプレッドシートに転記したいです。

k.a.

総合スコア0

Google Apps Script

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

0グッド

0クリップ

投稿2022/02/04 11:00

編集2022/02/04 11:04

0

0

Gmailの内容をスプレッドシートに転記したいと思い、他の質問も参考にさせていただきながら、挑戦してみましたが、上手くいきません。
作成イメージとしては以下の通りとなります。

■メール本文

【氏名】
山田 太郎
【住所】
東京都大阪市1条2丁目3-4
【連絡先】
090 - 1234 - 5678

■転記先スプレッド

日時氏名住所連絡先
12/25山田 太郎東京都大阪市1条2丁目3-4090 - 1234 - 5678

■テキストコード

function myFunction() { // 検索条件に該当するスレッド一覧を取得 var threads = GmailApp.search('subject:テスト'); // スレッドを一つずつ取り出す threads.forEach(function(thread) { // スレッド内のメール一覧を取得 var messages = thread.getMessages(); // メールを一つずつ取り出す messages.forEach(function(message) { // メール本文を取得 var plainBody = message.getPlainBody(); // メール本文が取得できているかログに出力して確認 Logger.log(plainBody); // 日時を取得 var date = message.getDate(); // お名前を取得 var name = plainBody.match(/【氏名】[\s\S]*//); // 住所を取得 var address = plainBody.match(/【住所】[\s\S]*//); // 連絡先を取得 var phone = plainBody.match(/【連絡先】[\s\S]*//); // 書き込むシートを取得 var sheet = SpreadsheetApp.getActive().getSheetByName('スプレッドシート'); // 最終行を取得 var lastRow = sheet.getLastRow() + 1; // セルを取得して値を転記 sheet.getRange(lastRow, 1).setValue(date); sheet.getRange(lastRow, 2).setValue(name); sheet.getRange(lastRow, 3).setValue(address); sheet.getRange(lastRow, 4).setValue(phone); }); // スレッドに処理済みラベルを付ける var label = GmailApp.getUserLabelByName('転記済み'); thread.addLabel(label); }); }

上手くいかない箇所としては
var name = plainBody.match(/【氏名】[\s\S]*//);
上記の  ”)” の下に赤線が出てエラーとなります。

非エンジニアのため、
ひどいコードと思いますが
ご修正頂けますと幸いです。

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

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

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

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

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

guest

回答1

0

これで、目の前のエラーだけは収まるはずです。残りはよきに計らってください。

js

1var name = plainBody.match(/【氏名】[\s\S]*//); 23var name = plainBody.match(/【氏名】\s+(.*)(\n|$)/)[1];

参考
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/match
https://developer.mozilla.org/ja/docs/Web/JavaScript/Guide/Regular_Expressions

投稿2022/02/04 13:17

k08045kk

総合スコア384

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

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

k.a.

2022/02/09 06:57

ありがとうございます。一番悩んでいた部分のエラーが解消されました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.30%

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

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

質問する

関連した質問