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

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

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

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

Gmail

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

Google Apps Script

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

マクロ

定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

Q&A

0回答

1788閲覧

GAS Gmailのメール本文をスプレッドシートへの転記方法について

Ryoichi0330

総合スコア0

Google スプレッドシート

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

Gmail

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

Google Apps Script

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

マクロ

定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

0グッド

2クリップ

投稿2022/02/16 03:03

編集2022/02/16 16:42

とあるサイトで【GAS】Gmailのメール本文をスプレッドシートに転記する方法をみつけました。
こちらですが、転記はうまくいきましたが、

①転記される順番が、受信が新しいもの順なので転記されます。
古いもの順でどんどん下に、新しいメールが転記されるようにしたいのですが、
どのようにすればいいでしょうか?

②スプレッドシート状に図形を挿入し→ボタンを作成→スクレプトを割り当て、ボタンを押したら転記されるという
仕組みを考えています。
みんなで共有しているアカウントがあり、そのメールアドレスのメールを転記するのですが、
このボタンを操作する人は、別のアカウントの方が複数人います。
だれでもこのボタンを押したときに、最新の共有しているアカウントのメールが転記されるようにはできないでしょうか?
ファイルは共有していますが、ボタンを押しても、結局共有しているアカウントでないと転記されません。

 初心者で申し訳ありませんが、教えていただけると非常にありがたいです。
よろしくお願いいたします。

function myFunction() { // 検索条件に該当するスレッド一覧を取得 var threads = GmailApp.search('subject:フォームからのお問い合わせ -label:処理済み'); // スレッドを一つずつ取り出す threads.forEach(function(thread) { // スレッド内のメール一覧を取得 var messages = thread.getMessages(); // メールを一つずつ取り出す messages.forEach(function(message) { // メール本文を取得 var plainBody = message.getPlainBody(); // メール本文が取得できているかログに出力して確認 Logger.log(plainBody); // メール本文を取得 var plainBody = message.getPlainBody(); // 差出人を取り出す var name = plainBody.match(/差出人: (.*)/); // 会社名を取り出す var company = plainBody.match(/会社名: (.*)/); // メールアドレスを取り出す var email = plainBody.match(/メールアドレス: (.*)/); // 電話番号を取り出す var tel = plainBody.match(/電話番号: (.*)/); // 書き込むシートを取得 var sheet = SpreadsheetApp.getActive().getSheetByName('お問い合わせ'); // 最終行を取得 var lastRow = sheet.getLastRow() + 1; // セルを取得して値を転記 sheet.getRange(lastRow, 1).setValue(name[1]); sheet.getRange(lastRow, 2).setValue(company[1]); sheet.getRange(lastRow, 3).setValue(email[1]); sheet.getRange(lastRow, 4).setValue(tel[1]); }); // スレッドに処理済みラベルを付ける var label = GmailApp.getUserLabelByName('処理済み'); thread.addLabel(label); }); }

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

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

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

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問