
Google Apps Scriptã䜿ã£ãŠIMPORTRANGEãæããã«ãã(ã³ããå¯)
ãã®ã¹ã¯ãªããã¯ãç¹å®ã®Google Driveãã©ã«ãå
ã®ã¹ãã¬ããã·ãŒãã§äœ¿çšãããŠããIMPORTRANGE颿°ãæ€çŽ¢ããããŒã«ã§ãã
ã¹ã¯ãªããã¯ãæå®ããããã©ã«ããååž°çã«æ€çŽ¢ããIMPORTRANGE颿°ãå«ãŸããŠããã»ã«ãèŠã€ãããšããã®æ
å ±ãå¥ã®ã¹ãã¬ããã·ãŒãã«èšé²ããŸãã
泚æç¹
ã¹ã¯ãªããã®ç¹æ§äžãããŒã¿ãæ¶ãããšããããšã¯ãããŸããããå®è¡æã®è²¬ä»»ã¯è² ããŸããã®ã§ãèªèº«ã®å€æã®å å®è¡ããŠãã ãã
Google Apps Scriptã®äœ¿çšå¶éã«èãããèšèšã§ã¯ãããŸããã6åããããã¯30åã§Scriptãçµäºããªãå Žåã¯ã¿ã€ã ã¢ãŠãã§ãšã©ãŒã«ãªã£ãŠããŸããŸãã
ååž°çã«ãã©ã«ããšãã¡ã€ã«ãååŸããŠå®è¡ãããããã¿ã€ã ã¢ãŠãã«ãªã£ãŠããŸãå Žåã¯ã«ãŒããã©ã«ãã®éå±€ãäžããŠã¿ãŠãã ããã
å®è¡è ã«ã¢ã¯ã»ã¹æš©éãç¡ããã¡ã€ã«ã¯æœåºã§ããªãã§ãïŒæ³£ã
IMPORTRANGEã«ã€ããŠ
IMPORTRANGEã¯äŸ¿å©ã
ã¹ãã¬ããã·ãŒãã䜿ã£ãŠãããšä»ã®ã·ãŒããšé£æºãããããªããŸãã
ãããªãšãã®ç¥é¢æ°ãIMPORTRANGEã
ä»ã®ã¹ãã¬ããã·ãŒããåç
§ããå€ãåŒã£åŒµã£ãŠãããã
IMPORTRANGEã䜿ã£ãŠããŠäžäŸ¿ãªããš
ãããããã瀟å
ã§IMPORTRANGEã䜿ããå§ãããšãã©ã®ã·ãŒããã©ã®ã·ãŒããåç
§ããŠãã®ãããããªãïŒ
ãã®ãããè¡ãåã远å ããŠããã®ããã·ãŒããæ¶ããŠããã®ãææ¡ã§ããªããªããŸãã
ããããGoogle Workspaceã®æšæºæ©èœã§ã¯ãã®åç §é¢ä¿ãæããã«ããããšã¯ã§ããŸãããïŒãã¶ãïŒ
ä»åã¯Google Apps scriptã䜿ã£ãŠæããã«ããããšãã§ããã®ã§ããã®ã¹ã¯ãªããã玹ä»ããŸãã
äœæããã¹ã¯ãªãã
äºåæºå
çµæèšé²çšã®ã¹ãã¬ããã·ãŒããæ°èŠäœæããã¹ãã¬ããã·ãŒãIDãã³ããŒããŠãããŠãã ãããã¹ãã¬ããã·ãŒãIDã¯URLããååŸã§ããŸããïŒdocs.google.com/spreadsheets/d/{ã¹ãã¬ããã·ãŒãID}/editïŒ
調æ»ããããGoogleãã©ã€ãäžã®ãã©ã«ãã®ãã©ã«ãIDãã³ããŒããŠãããŠãã ããããã¡ããIDã¯URLããååŸã§ããŸããïŒdrive.google.com/drive/folders/{ãã©ã«ãID}ïŒ
Google Apps Scriptã«ãŠæ°ãããããžã§ã¯ããäœæããŠãã ããã
[ã¹ã¯ãªããã®èšå®]ã¡ãã¥ãŒãã以äžã®ããã«ã¹ã¯ãªããããããã£ãèšå®ããŠäžããã
ãããã㣠: FOLDER_IDãå€ : 2ã§ååŸãããã©ã«ãID
ãããã㣠: REPORT_SHEET_IDãå€ : 1ã§ååŸããã¹ãã¬ããã·ãŒãID
ã¹ã¯ãªãã
searchFormulaInFolder
ãã®ã¹ã¯ãªããã®ã¡ã€ã³é¢æ°ã§ã
folderId ãš spreadsheetId ãšããããããã£ãããã©ã«ããšã¹ãã¬ããã·ãŒãã®IDãååŸããŸãã
æå®ããããã©ã«ããååž°çã«æ€çŽ¢ããŠãsearchFormula 颿°ãåŒã³åºããŸãã
çµæãã¹ãã¬ããã·ãŒãã«èšé²ããŸãã
function searchFormulaInFolder() {
// 調æ»ããããã©ã«ãã®äžéå±€ç®ã®IDãæå®
var folderId = PropertiesService.getScriptProperties().getProperty('FOLDER_ID');
var spreadsheetId = PropertiesService.getScriptProperties().getProperty('REPORT_SHEET_ID');
// æå®ãããã©ã«ããååž°çã«èª¿æ»
var rootFolder = DriveApp.getFolderById(folderId);
var resultArray = searchFormula(rootFolder);
// çµæãã¹ãã¬ããã·ãŒãã«èšé²
var spreadsheet = SpreadsheetApp.openById(spreadsheetId);
var sheet = spreadsheet.getSheetByName("çµæã·ãŒã");
if (!sheet) {
sheet = spreadsheet.insertSheet("çµæã·ãŒã");
}
// ããããŒã远å
sheet.getRange(1, 1, 1, 5).setValues([["ããããã颿°", "å
¥åãããŠããã»ã«", "ãã¡ã€ã«å", "ã·ãŒãå", "ã·ãŒãURL"]]);
// çµæãèšé²
if (resultArray.length > 0) {
sheet.getRange(sheet.getLastRow() + 1, 1, resultArray.length, 5).setValues(resultArray);
}
}searchFormula
æå®ããããã©ã«ãå ã®åãã¡ã€ã«ãæ€çŽ¢ããã¹ãã¬ããã·ãŒãã§ããã°ãã®äžã®åã·ãŒãã«å¯ŸããŠåŠçãè¡ããŸãã
ã¹ãã¬ããã·ãŒããããªããã¡ã€ã«ã¯ã¹ãããããŸã
ã·ãŒãä¿è·ãããã£ãŠããå Žåããã¡ã€ã«ã«äœããã®çç±ã§ã¢ã¯ã»ã¹ã§ããªãå Žåã¯ã¹ãããããŸã
åã·ãŒãã®æ°åŒãååŸããæå®ããã颿°ãå«ãŸããŠãããæ€çŽ¢ããŸãã
ãããããå Žåãçµæã resultArray ã«è¿œå ããæçµçã«ãã®é åãè¿ããŸãã
function searchFormula(folder, sheet) {
var resultArray = []; // ãããããæ
å ±ãæ ŒçŽããããã®é
å
// ãã©ã«ãå
ã®ãã¡ã€ã«äžèЧãååŸ
var files = folder.getFiles();
// 調æ»ããã颿°ãæå®
var targetFormula = "IMPORTRANGE";
// åãã¡ã€ã«ã«å¯ŸããŠåŠçãè¡ã
try {
while (files.hasNext()) {
var file = files.next();
var fileName = file.getName();
console.log(fileName);
// ã¹ãã¬ããã·ãŒãã§ããã確èª
if (file.getMimeType() === "application/vnd.google-apps.spreadsheet") {
// ãã¡ã€ã«ãéã
var spreadsheet = SpreadsheetApp.open(file);
// åã·ãŒãã«å¯ŸããŠåŠçãè¡ã
spreadsheet.getSheets().forEach(function(sheet) {
try {
// ã·ãŒãã®å
šç¯å²ãååŸ
var range = sheet.getDataRange();
// ã·ãŒãå
ã®æ°åŒãååŸ
var formulas = range.getFormulas();
// æ°åŒãæ€çŽ¢ããimportrange颿°ãå«ãŸããŠããã確èª
for (var i = 0; i < formulas.length; i++) {
for (var j = 0; j < formulas[i].length; j++) {
var formula = formulas[i][j];
if (formula.indexOf(targetFormula) !== -1) {
// importrange颿°ãèŠã€ãã£ãå Žåãé
åã«æ
å ±ã远å
resultArray.push([
"'" + formula, // å
é ã«ã·ã³ã°ã«ã¯ã©ãŒãã远å
range.getCell(i + 1, j + 1).getA1Notation(),
fileName,
sheet.getName(),
spreadsheet.getUrl() + "#gid=" + sheet.getSheetId()
]);
}
}
}
} catch (error) {
// ã·ãŒããããã¯ãããŠããå Žåã®ãšã©ãŒããã£ããããŠç¡èŠ
}
});
}
}
} catch (error) {
// ãã¡ã€ã«ãããã¯ãããŠããå Žåã®ãšã©ãŒããã£ããããŠç¡èŠ
}
// ãµããã©ã«ãã«å¯ŸããŠååž°çã«åŠçãè¡ã
var subFolders = folder.getFolders();
while (subFolders.hasNext()) {
var subFolder = subFolders.next();
resultArray = resultArray.concat(searchFormula(subFolder, sheet));
}
return resultArray;
}ãã®2ã€ãä¿åããŠÂ searchFormulaInFolder ãå®è¡ããŠãã ããã
çµæèšé²çšã®ã¹ãã¬ããã·ãŒãã«å®è¡çµæãèšé²ããããšæããŸãã
å®è¡çµæã®ã€ã¡ãŒãž
ãããªæãã§åºåãããŸãã
Aåã«å®éã«å
¥åãããŠãã颿°ã衚瀺ãããã®ã§ãããã調ã¹ãŠããããšãå¯èœã§ãã
æ¹åç¹ãšããŠãã®URLãã¹ãã¬ããã·ãŒãIDãããã¡ã€ã«åãæã£ãŠããããšã¯ã§ããããªã®ã§è¿œã
æ¹ä¿®äºå®ã§ãïŒ

ãŸãšã
è¯ãã£ãç¹
ãã©ã«ãå
ã®ãµããã©ã«ããååž°çã«æ€çŽ¢ããã®ã§ãããçšåºŠãå€§èŠæš¡ãªãã©ã«ãéå±€ã§ã䜿çšã§ããŸãã
IMPORTRANGE颿°ãã©ãã§äœ¿çšãããŠããããç°¡åã«ææ¡ããã¹ãã¬ããã·ãŒãã®æ§é ãçè§£ããã®ã«åœ¹ç«ãŠããšæããŸãã
æ¹åç¹
åç §å ã·ãŒã
颿°ã®æãåºããŸã§ã¯ã§ããŠãããã®ã®ããã©ã®ã¹ãã¬ããã·ãŒããåç
§ããŠããããã«ã€ããŠã¯ãªã¹ãåããããŠããªããã§ãããïœã
ããã«ã€ããŠã¯ä»åŸã®æ¹ä¿®ãã€ã³ãããªãšæã£ãŠããŸãã
URLãæå®ããŠãããã¿ãŒã³ãšãã¡ã€ã«IDã®ã¿ã§æå®ããŠãããã¿ãŒã³ããããããªã®ã§ãããããŸãå©çšããŠãã¡ã€ã«åã衚瀺ã§ããã°ãããããã£ãããšã¯éæã§ãããã
30åå¶éã®çªç Ž
å éšããªã¬ãŒã§è§£æ±º
䞊ååŠçããã
ããããããããã¯2ã€ãçµã¿åãããããšã§å®çŸã§ãããã§ãããFileItelatorã®åŠçã«ã€ããŠæè¡çãªé¢ã§è¿œãã€ããŠããªãä»åã¯å®è£
ã§ããŸããã§ããããããã§ãããšå€éãããã®ããã«èµ°ãããŠãããšãã£ãæªæ¥ãèŠããŠããã®ã§ããã远ã
æè¡ç¿åŸããŠå®è£
ã§ããã°ãªãšæããŸãã
ïŒããç¥ã£ãŠããæ¹ãããã£ãããã°æããŠæ¬²ããâŠïŒ