copyPdfFileIDsToSpreadsheet(GAS)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 | function copyPdfFileIDsToSpreadsheet() { // スプレッドシートとスプレッドシート取得 let ss = SpreadsheetApp.getActiveSpreadsheet(); let spreadsheet = ss.getSheetByName("宛先"); // フォルダのID let folderId = "1QCLrT8DM9wPa2La5zCumu9n_R4eapYvF"; // フォルダ内のファイル一覧を取得 let folder = DriveApp.getFolderById(folderId); let files = folder.getFiles(); // ファイル名とIDの対応を格納するオブジェクト let fileIdMap = {}; // シートの最終行を取得 let lastRow = spreadsheet.getLastRow(); while (files.hasNext()) { let file = files.next(); let fileName = file.getName(); // let fileID = file.getId(); let fileURL = file.getUrl(); let cellRange; let value; for (let i = 0; i < lastRow -1 ; i++) { cellRange = "B" + ( i + 2); value = spreadsheet.getRange(cellRange).getValue() + ".pdf"; if ( value == fileName) { spreadsheet.getRange("E" + (i+2)).setValue(fileURL); break; } } } // E列のデータを取得 let range = spreadsheet.getRange("E2:E" + spreadsheet.getLastRow()); let values = range.getValues(); // PDFファイルへのリンクを追加 for (let i = 0; i < values.length; i++) { let pdfLink = values[i][0]; // E列の各セルに保存されているPDFファイルのURL if (pdfLink) { let pdfCell = spreadsheet.getRange(i + 2, 5); // E列の対応するセル let depName = spreadsheet.getRange(i + 2, 2).getValue() + ".pdf"; let formula = '=HYPERLINK("' + pdfLink + '", "' + depName + '")'; // リンクの式を生成 pdfCell.setFormula(formula); // リンクをセルに設定 } } } |