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

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

新規登録して質問してみよう
ただいま回答率
85.35%
Google Apps Script

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

Google

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

Q&A

2回答

983閲覧

Gmailからのスプレッドシート転記

shigeseki

総合スコア0

Google Apps Script

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

Google

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

0グッド

0クリップ

投稿2021/05/02 11:03

編集2021/05/03 04:54

Gmailからのスプレッドシート転記

Gmailからスプレッドシートへの書き出しを行っていますが、
うまくscriptが書けずに、書き出しが行われず、、、

初心者なので、scriptが間違っている可能性が高いですが、
以下のscriptでの問題点を教えて頂けますでしょうか。

=================
◆読込情報
▼メール件名
あああああ

▼メール本文
投票結果
【B】

お客様のメールアドレス
aaaaa@gmail.com
=================
◆書き出し希望情報
・同一本文メールの
・メール受信時間
・投票結果
・アドレス
=================
◆現状script
function myFunction() {
var threads = GmailApp.search(' subject:(あああああ)');

threads.forEach(function(thread) {
var messages = thread.getMessages();
messages.forEach(function(message) {
// 日付を取得
var date = message.getDate();

// 件名を取得 var subject = message.getSubject(); // メール本文を取得 var plainBody = message.getPlainBody(); // 本文内投票結果を取得 var vote = plainBody.match(/投票結果[\s\S]*//); // 本文内メールアドレスを取得 var mail = plainBody.match(/お客様のメールアドレス:(.*)/); // 書き込むシートを取得 var sheet = SpreadsheetApp.getActive().getSheetByName('投票集計1950'); // 最終行を取得 var lastRow = sheet.getLastRow() + 1; // セルを取得して値を転記 sheet.getRange(lastRow, 1).setValue(date); sheet.getRange(lastRow, 2).setValue(subject); sheet.getRange(lastRow, 3).setValue(vote); sheet.getRange(lastRow, 4).setValue(mail); });

});
}
=================
◆現状のエラー文言
エラー
TypeError: Cannot read property '1' of null
(匿名) @ コード.gs:31
(匿名) @ コード.gs:6
myFunction @ コード.gs:4

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

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

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

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

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

guest

回答2

0

とりあえず提示の本文内容であれば

GAS

1// 本文内投票結果を取得 2var vote = plainBody.match(/投票結果\r\n(.*)/); 3 4// 本文内メールアドレスを取得 5var mail = plainBody.match(/お客様のメールアドレス\r\n(.*)/); 6

とやった後でvote[1]とmail[1]で取得できるのではないでしょうか。

投稿2021/05/03 07:27

xail2222

総合スコア1508

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

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

0

エラーで検索されましたか?
TypeError: Cannot read property '1' of null で検索すると類似質問が出てきます
https://teratail.com/questions/97327

ここの回答と同じように、エラーで示されているコード箇所で
nullに対して操作をしているということです

投稿2021/05/02 14:40

jamjam3

総合スコア165

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問