回答編集履歴

1

何度か検証した結果、以下のスクリプトだと、リストと合致した添付ファイルを保存できていないことがわかりました。

2022/02/16 00:39

投稿

tottey1226
tottey1226

スコア19

test CHANGED
@@ -1,21 +1,28 @@
1
- Eskee 様 ご返信ありがとうございます!頂いヒントを元に複数Gmail中からファイルリストのファイル名+検索条件合致する添付ファイルだけGmailからフォルダに保存するスクリプトができましたm(_ _)m
1
+ 何度か検証し結果以下スクプトだと、リスト合致した添付ファイルを保存できていないことがわかりました
2
+ 申し訳ございませんm(_ _)m
3
+ 余計なファイルまで取得してしまいました。
2
4
 
3
5
  **◆ファイルリストと合致する添付ファイルだけをGmailからフォルダに保存するスクリプト◆**
4
6
  ```ここに言語を入力
7
+ //ファイルリスト(スプシ)と合致する添付ファイルのみをGmailから取得しフォルダに保存するスクリプト
8
+
5
9
  var FOLDER_ID = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxx'; //ファイルを保存するフォルダIDを設定する
6
10
 
7
11
  var ss =SpreadsheetApp.getActiveSpreadsheet();
8
- var sht = ss.getSheetByName("xxxxxxx"); //シート名を指定(ファイルリストのあるシート名を指定)する
12
+ var sht = ss.getSheetByName("請求書番号"); //シート名を指定(ファイルリストのあるシート名を指定)する
13
+
14
+ // var FOLDER_ID = ss.getRange('D5').getValue(); //ファイルを保存するフォルダIDを設定する
9
15
 
10
16
  function fetchattachment2(){
11
17
 
12
18
  // ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
13
19
  //リストのファイル名を検索条件に追加するループ
14
20
  var lastRow = sht.getLastRow();//リストの最終行番号を習得
15
- for(let ii = 2; ii <= lastRow; ii++) {
21
+ for(var l = 2; l <= lastRow; l++) {
16
22
 
23
+
17
- var fname =sht.getRange(ii, 1).getValue(); //ファイル名をスプシから習得
24
+ var fname =sht.getRange(l, 1).getValue();
18
- var SEARCH_TERM = 'subject:(Gmailの件名を設定) from:(xxxx@xxxxx.com)' + fname ;//Gmailを検索するための条件を設定
25
+ var SEARCH_TERM = 'subject:xxxxxxxxx 請求書 from:(xxxxxx@xxxx.com) ' + fname ;//Gmailを検索条件を設定
19
26
  var myFolder = DriveApp.getFolderById(FOLDER_ID); //フォルダを取得
20
27
  var myThreads = GmailApp.search(SEARCH_TERM, 0, 150); //条件にマッチしたスレッドを検索して取得
21
28
  var myMessages = GmailApp.getMessagesForThreads(myThreads); //スレッドからメールを取得し二次元配列で格納