前提・実現したいこと
数式が組まれている複数のセルに対して一括で保護をかけたい
発生している問題・エラーメッセージ
対象のセルが多く6分間を超過してしまい処理が途中でキャンセルされる
エラーメッセージ
該当のソースコード
// アクティブなシート内の数式セルを保護 function protectActiveSheetFormulas() { const sheet = SpreadsheetApp.getActiveSheet(); console.log(sheet.getName()); protectFormulaCells(sheet); } // 全てのシートの数式セルを保護 function protecAllSheetsFormulas() { const ss = SpreadsheetApp.getActiveSpreadsheet(); const sheets = ss.getSheets(); for (const sheet of sheets) { console.log(sheet.getName()); protectFormulaCells(sheet); } } // 数式が含まれるセルを取得して保護していく関数 function protectFormulaCells(sheet) { //全データ範囲を取得 const allRange = sheet.getDataRange(); //全データ範囲の数式を取得 const formulas = allRange.getFormulas(); //データ配列数=行数を取得 const numFormulas = formulas.length; // console.log(numFormulas); //データ範囲の列数を取得 const lastColumn = sheet.getLastColumn(); // console.log(lastColumn); // 数式を含むセルの範囲を一つずつ取得し保護 for (let i = 0; i < numFormulas; i++) { for (let j = 0; j < lastColumn; j++) { const cell = formulas[i][j]; if (cell.length > 0) { // console.log(`${i + 1}:${j + 1}`); console.log(sheet.getRange(i + 1, j + 1).getA1Notation()); sheet.getRange(i + 1, j + 1).protect().setDescription('数式セルの為保護'); } } } }
試したこと
他の方を参考に6分間超過する際の対処法を組み込みましたが上手くできず
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/09/21 01:27
2021/09/21 01:39 編集
2021/09/21 09:34