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

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

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

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

Google Apps Script

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

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

Q&A

2回答

930閲覧

Google Apps Script(GAS) Gmail検索⇒スプレッドシートへ書き出し時に最初のスレッド、かつ一部の本文のみにしたい

退会済みユーザー

退会済みユーザー

総合スコア0

Google スプレッドシート

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

Google Apps Script

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

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

0グッド

1クリップ

投稿2021/10/29 09:32

編集2021/10/29 09:33

前提・実現したいこと

引用返信のメールの最初のスレッド、かつ一部(4行目~8行目)の本文を指定したスプレッドシートへ書き出したいです
※本文の冒頭を0行目とした場合の行数です

・件名
継続確定【●●●●年●●月●●日●●●】確認依頼
※件名は固定でこのパターンです

・本文
●●さん

お疲れ様です。●●です。

●●/●●開催の●●●ですが、承認が下りましたので下記日程・条件にて対応をお願いいたします。 ←ここから

・期間:●●/●● ●●:●●~●●/●● ●●:●●
・対象:●●●●●
・継続                                         ←ここまで

よろしくお願いいたします。

◆現状
下記のコードで自身宛のアドレス(To)に受信、件名は上記記載のもので書き出しまで対応できています。
bodyを使用する事は分かるのですが、一部(4行目~8行目)の本文を書き出すコードが調べても分からず困っています。

教えていただける方いましたらよろしくお願いいたします。

該当のソースコード

GAS

1function myFunction(){ 2 var spreadsheet = SpreadsheetApp.getActiveSpreadsheet(); 3 var sheet = spreadsheet.getSheetByName("継続確認用"); // シートの取得 4 var firstRow = sheet.getRange(6,10).getValues();//最終行の確認 5 6 var threads = GmailApp.search('To:●●●@●●●.com subject:継続確定 【●●●●年●●月●●日●●●】確認依頼'); // 検索条件指定 7 var messages = GmailApp.getMessagesForThreads(threads); 8 9 //書き込み 10 messages.forEach(function(message){ 11 12 var body = message[0].getPlainBody(); 13 var Subject = message[0].getSubject(); 14 var date = message[0].getDate(); 15 16 var data = [date,Subject,body]; 17 sheet.getRange(firstRow,1,1,data.length).setValues([data]); 18 Logger.log([data]); //確認用 19 20 firstRow++; 21 }); 22}

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

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

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

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

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

guest

回答2

0

こちらは定型文ですか?
もし変化する部分が⚫️⚫️の部分だけでしたら、
Parserライブラリを使ってみてはいかがでしょう。(普通はスクレイピングに使うものですが)

JavaScript

1const text = “☆メール本文☆”; 2const fromText = “対応をお願いいたします。”; 3const toText = “ よろしくお願いいたします。”; 4const result = Parser.data(text).from(fromText).to(toText).build();

Parserでは、直前の文字列(fromText)と直後の文字列(toText)を指定して、間の文字列を抜き出します。

もう少し具体的に例を挙げると

JavaScript

1const text = “日本東京都渋谷区”; 2const fromText = “都”; 3const toText = “区”; 4const result = Parser.data(text).from(fromText).to(toText).build(); 5console.log(result); //“渋谷”

このような形で使用できます。

投稿2021/11/25 01:13

daltonya

総合スコア109

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

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

0

本文は行毎に取得することはできず、文字列としてしか取得できません。
そのため、行数が固定されているのであれば、改行文字で分解する、あるいは正規表現で取得するなどの方法をためしてください。

投稿2021/11/03 23:20

macaron_xxx

総合スコア3191

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問