チャットgptでメール本文の中のurlをスプレッドシートに書くgasを作ってもらいましたこれで大丈夫でしょうかfunction extractUrlsFlexible() {const SPREADSHEET_ID = 'スプレッドシートID'; const SETTINGS_SHEET = '設定'; const LABEL_NAME = '処理済み'; const ss = SpreadsheetApp.openById(SPREADSHEET_ID); const settingsSheet = ss.getSheetByName(SETTINGS_SHEET); // 設定ロード const subjectKeywords = []; const excludeKeywords = []; const settings = {}; const data = settingsSheet.getDataRange().getValues(); data.forEach(row =\u0026gt; { const key = row[0]; const value = row[1]; if (!key || !value) return; if (key.match(/^件名キーワード/)) { subjectKeywords.push(value); } else if (key.match(/^除外キーワード/)) { excludeKeywords.push(value); } else { settings[key] = value; } }); const label = GmailApp.getUserLabelByName(LABEL_NAME) || GmailApp.createLabel(LABEL_NAME); const threads = GmailApp.search('is:unread -label:' + LABEL_NAME); threads.forEach(thread =\u0026gt; { thread.getMessages().forEach(message =\u0026gt; { const subject = message.getSubject(); // 件名の終端条件 if (!subject.match(/公開されました$/)) return; // 件名キーワードのどれかを含むか? const hit = subjectKeywords.some(kw =\u0026gt; subject.includes(kw)); if (!hit) return; let body = message.getBody(); // 除外キーワードのいずれかがあればそこから下を切る excludeKeywords.forEach(kw =\u0026gt; { const idx = body.indexOf(kw); if (idx !== -1) { body = body.substring(0, idx); } }); // URL抽出 const urlRegex = /https?:\\/\\/[^\\s\u0026quot;\u0026lt;]+/g; const urls = []; let match; while ((match = urlRegex.exec(body)) !== null) { urls.push(match[0]); }続きがあります

Word

1件の回答

回答を書く

1196242

2026-04-13 21:15

+ フォロー

AIのお助け回答を踏まえて、

さらにAIに処理の追加を依頼するのがいいと思います。

チャットの続きで処理の追加依頼ができませんか?



必要なのは、

指定のurlの指定シートへの記入と処理済みラベルの付与ですね。



なお、他の回答者様の指摘は、

forEachのアロー関数の処理を理解していないのか…

returnで処理が終了するということはありません

そのメールが飛ばされるだけで

メールが他にあるなら処理は続きます。



AIのお助け回答が言うように、

urlの抽出とシート名の振り分けまでの処理までは

問題ありません。

うったえる有益だ(0シェアするブックマークする

関連質問

Copyright © 2026 AQ188.com All Rights Reserved.

博識 著作権所有