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

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

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

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

Q&A

解決済

1回答

797閲覧

GASコードのエラーが起こる原因と解決策が知りたいです。

Sakanakun_SA

総合スコア4

Google Apps Script

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

0グッド

0クリップ

投稿2021/08/29 04:52

編集2021/08/29 05:00

実現したいこと

GASに関してのご質問です。Gmailで【アスクル】から届いた情報をスプレッドシートに反映させたいです。
ほしい情報は

・それぞれの商品の価格
・それぞれの注文番号
・それぞれの小計

です。商品ごとに価格、商品名、注文番号を出したいのですがうまくいきません
どのように修正するのがよろしいのでしょうか?

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

TypeError: Cannot read property '1' of null

該当のソースコード

function Main2() { // 検索条件に該当するスレッド一覧を取得 var threads = GmailApp.search('【アスクル】ご注文ありがとうございました'); // スレッドを一つずつ取り出す threads.forEach(function(thread) { // スレッド内のメール一覧を取得 var messages = thread.getMessages(); // メールを一つずつ取り出す messages.forEach(function(message) { // メール本文を取得 var plainBody = message.getPlainBody(); // メール本文が取得できているかログに出力して確認 Logger.log(plainBody); // 商品の価格を取り出す var order_pay = plainBody.match(/販売価格(税込) 注文数量 小計(税込)\n([\s\S]*)[image: もう一度注文する]/); //注文番号を取り出す  var get_pay = plainBody.match(/お申込番号:(.*)/); // 商品名を取り出す var order_number = plainBody.match(/image: (.*)/); // 書き込むシートを取得 var sheet = SpreadsheetApp.getActive().getSheetByName('アスクル自動化'); // 最終行を取得 var lastRow = sheet.getLastRow() + 1; // セルを取得して値を転記 sheet.getRange(lastRow, 1).setValue(order_pay[1] ) sheet.getRange(lastRow, 2).setValue(order_number[1]); sheet.getRange(lastRow, 3).setValue(order_name[1]);; }); }); }

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

情報はこちらです。

ご注文商品およびお届け日
配送状況を確認する
<https://www.askul.co.jp/・・・
ご注文内容を確認する
<https://www.askul.co.jp/・・・
オーダー管理番号:××
お届け日:2021年08月25日(水)
[image: 「現場のチカラ」 【養生テープ】 若葉色 幅50mm×50m アスクル 1巻]
https://www.askul.co.jp/p/1587828/?sc_e=cp_m_as_sg_mt_n_ht_reply_product
「現場のチカラ」 【養生テープ】 若葉色 幅50mm×50m アスクル 1巻
https://www.askul.co.jp/p/1587828/?sc_e=cp_m_as_sg_mt_n_ht_reply_product
お申込番号:××
販売価格(税込) 注文数量 小計(税込)
¥477 3 ¥1,431
[image: もう一度注文する]
https://www.askul.co.jp/p/1587828/?sc_e=cp_m_as_sg_mt_n_ht_reply_ordproduct
[image:
レビューを書く]
https://www.askul.co.jp/review/1587828/?sc_e=cp_m_as_sg_mt_n_ht_reply_reviweproduct
[image: 「現場のチカラ」 【養生テープ】 半透明 幅50mm×50m アスクル 1巻]
https://www.askul.co.jp/p/1587837/?sc_e=cp_m_as_sg_mt_n_ht_reply_product
「現場のチカラ」 【養生テープ】 半透明 幅50mm×50m アスクル 1巻
https://www.askul.co.jp/p/1587837/?sc_e=cp_m_as_sg_mt_n_ht_reply_product
お申込番号:××
販売価格(税込) 注文数量 小計(税込)
¥477 3 ¥1,431
[image: もう一度注文する]
https://www.askul.co.jp/p/1587837/?sc_e=cp_m_as_sg_mt_n_ht_reply_ordproduct
[image:
レビューを書く]
https://www.askul.co.jp/review/1587837/?sc_e=cp_m_as_sg_mt_n_ht_reply_reviweproduct
[image: 伊藤忠リーテイルリンク OPP袋(テープなし) L判写真用 横95×縦135mm 透明袋 1袋(100枚入)]
https://www.askul.co.jp/p/3449446/?sc_e=cp_m_as_sg_mt_n_ht_reply_product
伊藤忠リーテイルリンク OPP袋(テープなし) L判写真用 横95×縦135mm 透明袋 1袋(100枚入)
https://www.askul.co.jp/p/3449446/?sc_e=cp_m_as_sg_mt_n_ht_reply_product
お申込番号:××
販売価格(税込) 注文数量 小計(税込)
¥160 2 ¥320
[image: もう一度注文する]
https://www.askul.co.jp/p/3449446/?sc_e=cp_m_as_sg_mt_n_ht_reply_ordproduct
[image:
レビューを書く]
https://www.askul.co.jp/review/3449446/?sc_e=cp_m_as_sg_mt_n_ht_reply_reviweproduct
[image: 「現場のチカラ」 厚手布両面テープ 幅25mm×15m Monf(モンフ) 古藤工業 1巻]
https://www.askul.co.jp/p/8445655/?sc_e=cp_m_as_sg_mt_n_ht_reply_product
「現場のチカラ」 厚手布両面テープ 幅25mm×15m Monf(モンフ) 古藤工業 1巻
https://www.askul.co.jp/p/8445655/?sc_e=cp_m_as_sg_mt_n_ht_reply_product
お申込番号:××
販売価格(税込) 注文数量 小計(税込)
¥376 3 ¥1,128
[image: もう一度注文する]
https://www.askul.co.jp/p/8445655/?sc_e=cp_m_as_sg_mt_n_ht_reply_ordproduct
[image:
レビューを書く]
https://www.askul.co.jp/review/8445655/?sc_e=cp_m_as_sg_mt_n_ht_reply_reviweproduct
[image: エプソン 写真用紙ライト〈薄手光沢〉KL100SLU L判 1箱(100枚入)]
https://www.askul.co.jp/p/9087694/?sc_e=cp_m_as_sg_mt_n_ht_reply_product
エプソン 写真用紙ライト〈薄手光沢〉KL100SLU L判 1箱(100枚入)
https://www.askul.co.jp/p/9087694/?sc_e=cp_m_as_sg_mt_n_ht_reply_product
お申込番号:××
販売価格(税込) 注文数量 小計(税込)
¥671 2 ¥1,342
[image: もう一度注文する]
https://www.askul.co.jp/p/9087694/?sc_e=cp_m_as_sg_mt_n_ht_reply_ordproduct
[image:
レビューを書く]
https://www.askul.co.jp/review/9087694/?sc_e=cp_m_as_sg_mt_n_ht_reply_reviweproduct
[image: セイコーエプソン 純正 インクカートリッジ KETA-5CL 1パック(5色入) KEN・TAK(ケンダマ・タケトンボ)シリーズ]
https://www.askul.co.jp/p/E090851/?sc_e=cp_m_as_sg_mt_n_ht_reply_product
セイコーエプソン 純正 インクカートリッジ KETA-5CL 1パック(5色入) KEN・TAK(ケンダマ・タケトンボ)シリーズ
https://www.askul.co.jp/p/E090851/?sc_e=cp_m_as_sg_mt_n_ht_reply_product
お申込番号:××
販売価格(税込) 注文数量 小計(税込)
¥3,135 1 ¥3,135
[image: もう一度注文する]
https://www.askul.co.jp/p/E090851/?sc_e=cp_m_as_sg_mt_n_ht_reply_ordproduct
[image:
レビューを書く]
https://www.askul.co.jp/review/E090851/?sc_e=cp_m_as_sg_mt_n_ht_reply_reviweproduct
価格に◎がついている商品は、大量購入によるお値引きが適用されています。
※万一、在庫切れ等がございました場合は、別途ご連絡をさせていただきます。
[image: ご注文履歴へ]
<https://www.askul.co.jp/・・・・
[image: messaging]
同じお届け日、お届け先なら追加注文で送料無料!
[image: recommendation 1]
http://image.richrelevance.com/rrmail/click/recs?apiKey=91d13f11700cfd3d&userId=88677775&campaign=coupon&date=2021-08-24&placement=recomRR_mail_reply1&layout=Email_reply&slot=1&rid=REGION
[image: recommendation 2]
http://image.richrelevance.com/rrmail/click/recs?apiKey=91d13f11700cfd3d&userId=88677775&campaign=coupon&date=2021-08-24&placement=recomRR_mail_reply1&layout=Email_reply&slot=2&rid=REGION
[image: recommendation 3]
http://image.richrelevance.com/rrmail/click/recs?apiKey=91d13f11700cfd3d&userId=88677775&campaign=coupon&date=2021-08-24&placement=recomRR_mail_reply1&layout=Email_reply&slot=3&rid=REGION
[image: recommendation 4]
http://image.richrelevance.com/rrmail/click/recs?apiKey=91d13f11700cfd3d&userId=88677775&campaign=coupon&date=2021-08-24&placement=recomRR_mail_reply1&layout=Email_reply&slot=4&rid=REGION

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

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

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

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

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

guest

回答1

0

ベストアンサー

order_numberの定義・宣言が見当たらないので、そのせいでしょう。


追記

var order_pay = plainBody.match(/販売価格(税込) 注文数量 小計(税込)\n([\s\S]*)[image: もう一度注文する]/);

この正規表現がマッチしているかどうか怪しいですね。\nが余計かも。([\s\S]*)のパターンは改行も含めた意図と思われます。

console.log(order_pay);で欲しいデータが取れているかどうか確認してみてください。

投稿2021/08/29 04:56

編集2021/08/29 05:07
itagagaki

総合スコア8402

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

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

Sakanakun_SA

2021/08/29 05:00

ご回答していただいて誠にありがとうございます! order_name → order_number に修正させていただきまして 先ほど再度実行しましたが、ダメでした。
itagagaki

2021/08/29 05:07

次の可能性を回答に追記しました。
Sakanakun_SA

2021/08/29 05:29

さらにご回答していただきましてありがとうございます! \nを抜いたところ、かなり限定されるようにスプレッドシートに反映されました!ありがとうございます! 実行したところ、 ¥477 3 ¥1,431~~~ ~~~~~~~~~~~ のように¥の情報以外の情報も入力されました。 ¥の情報だけほしいのですがそもそも可能なのでしょうか?
itagagaki

2021/08/29 06:33

「¥477 3 ¥1,431」を取り出したいということですか?
Sakanakun_SA

2021/08/29 06:50

>itagakiさんのおっしゃるとおり 「¥477 3 ¥1,431」の部分を取り出したいです。
itagagaki

2021/08/29 06:55

それなら \n([\s\S]*) となっていた部分を [\s]*(.*)[\s\S]* に変えれば良さそうです。
Sakanakun_SA

2021/08/29 07:08

ありがとうございます!送っていただいたコードを応用したいと思います!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.37%

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

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

質問する

関連した質問