前提・実現したいこと
GASを使ってGoogleDriveに作成したフォルダ内の新規ファイルが追加された際にスプレッドシートに追加されたファイルのファイル名を追加したい。
A | |
---|---|
ファイル名1 | ←既にフォルダにあり、かつスプレッドシートに記載してある |
ファイル名2 | ←既にフォルダにあり、かつスプレッドシートに記載してある |
ファイル名3 | ←既にフォルダにあり、かつスプレッドシートに記載してある |
ファイル名4 | ←新たにフォルダに追加した。そしてスプレッドシートに記載したい |
ファイル名5 | ←新たにフォルダに追加した。そしてスプレッドシートに記載したい |
発生している問題
スプレッドシートに記載されているファイル名とフォルダ内にあるファイル名の差分を取得できず全てのファイル名を更新をかけるたびに追加していってしまう。
該当のソースコード
GAS
1function myFunction() { 2 //フォルダのパス 3 var folder = DriveApp.getFolderById("*******"); 4 //フォルダ内のファイルを取得 5 var files = folder.getFiles(); 6 //最後の行を取得 7 var i = SpreadsheetApp.getActiveSheet().getLastRow(); 8 //既にスプレッドシートに記載されているファイル名を取得 9 var lastCreatedMap = SpreadsheetApp.getActiveSheet().getRange('A2:A15').getValues(); 10 11 //フォルダにある全ファイルを繰り返す 12 while(files.hasNext()){ 13 var file = files.next(); 14 //ファイルの名前を取得 15 var fileName = file.getName(); 16 //最後の行に足していく 17 i++ 18 //新規のファイルと既にスプレッドシートに記載されているファイル名が一致しなければ最後の行にファイル名を追加していく。 19 if(fileName !== lastCreatedMap){ 20 SpreadsheetApp.getActiveSheet().getRange(i, 1).setValue(fileName); 21 } 22 } 23} 24
回答1件
あなたの回答
tips
プレビュー