{ try { const targetSS = SpreadsheetApp.openByUrl(url); const sheet = targetSS.getSheets()[0]; // 1枚目のシートを対象 // --- ① 2列目(B列)を削除 --- sheet.deleteColumn(2); // --- ② カテゴリ名を置換 --- const range = sheet.getDataRange(); const values = range.getValues(); for (let row = 0; row < values.length; row++) { for (let col = 0; col < values[row].length; col++) { if (values[row][col] === "旧カテゴリ名A") { values[row][col] = "新カテゴリ名B"; } } } range.setValues(values); Logger.log(`✅ ${index + 1}. ${url} → 処理完了`); } catch (e) { Logger.log(`❌ ${index + 1}. ${url} → エラー: ${e.message}`); } }); SpreadsheetApp.getUi().alert("全てのスプレッドシートの処理"> { try { const targetSS = SpreadsheetApp.openByUrl(url); const sheet = targetSS.getSheets()[0]; // 1枚目のシートを対象 // --- ① 2列目(B列)を削除 --- sheet.deleteColumn(2); // --- ② カテゴリ名を置換 --- const range = sheet.getDataRange(); const values = range.getValues(); for (let row = 0; row < values.length; row++) { for (let col = 0; col < values[row].length; col++) { if (values[row][col] === "旧カテゴリ名A") { values[row][col] = "新カテゴリ名B"; } } } range.setValues(values); Logger.log(`✅ ${index + 1}. ${url} → 処理完了`); } catch (e) { Logger.log(`❌ ${index + 1}. ${url} → エラー: ${e.message}`); } }); SpreadsheetApp.getUi().alert("全てのスプレッドシートの処理"> { try { const targetSS = SpreadsheetApp.openByUrl(url); const sheet = targetSS.getSheets()[0]; // 1枚目のシートを対象 // --- ① 2列目(B列)を削除 --- sheet.deleteColumn(2); // --- ② カテゴリ名を置換 --- const range = sheet.getDataRange(); const values = range.getValues(); for (let row = 0; row < values.length; row++) { for (let col = 0; col < values[row].length; col++) { if (values[row][col] === "旧カテゴリ名A") { values[row][col] = "新カテゴリ名B"; } } } range.setValues(values); Logger.log(`✅ ${index + 1}. ${url} → 処理完了`); } catch (e) { Logger.log(`❌ ${index + 1}. ${url} → エラー: ${e.message}`); } }); SpreadsheetApp.getUi().alert("全てのスプレッドシートの処理">
サンプルコードはこちら function batchProcessSheets() { const urlSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("シート1"); const urls = urlSheet.getRange(2, 1, urlSheet.getLastRow() - 1).getValues().flat();
urls.forEach((url, index) => { try { const targetSS = SpreadsheetApp.openByUrl(url); const sheet = targetSS.getSheets()[0]; // 1枚目のシートを対象
// --- ① 2列目(B列)を削除 ---
sheet.deleteColumn(2);
// --- ② カテゴリ名を置換 ---
const range = sheet.getDataRange();
const values = range.getValues();
for (let row = 0; row < values.length; row++) {
for (let col = 0; col < values[row].length; col++) {
if (values[row][col] === "旧カテゴリ名A") {
values[row][col] = "新カテゴリ名B";
}
}
}
range.setValues(values);
Logger.log(`✅ ${index + 1}. ${url} → 処理完了`);
} catch (e) {
Logger.log(`❌ ${index + 1}. ${url} → エラー: ${e.message}`);
}
});
SpreadsheetApp.getUi().alert("全てのスプレッドシートの処理が完了しました。"); }