【実装したい機能】
※イメージ図
・C2以降のセルの値を参照して枠線を引きたい
・例えばC2からC6にかけて(1,1,2,2,3,4,4)と入力されている場合、(C3,C5,C6,C8)の下辺に外枠を適用したい
ㅤ
ㅤ
ㅤ
【使用したソースコード】
javascript
1function onEdit(e) { 2 var sheet = e.range.getSheet(); 3 4 if (sheet.getName() !== "脚本") { 5 return; 6 } 7 8 if (e.range.getColumn() == 3 || e.range.getColumn() == 13) { 9 applyBorders(sheet); 10 copyDataToM(sheet, e.range); 11 } 12} 13 14function applyBorders(sheet) { 15 var dataRange = sheet.getDataRange(); 16 var data = dataRange.getValues(); 17 var color = '#4285f4'; 18 19 dataRange.setBorder(false, false, false, false, false, false); 20 21 // C列2行目から最終行まで処理 22 for (var i = 2; i < data.length; i++) { 23 // 対象となるセルと1つ下のセルの値を比較 24 if (data[i][2] !== data[i - 1][2]) { 25 // 値が異なる場合、対象となるセルに外枠を引く 26 sheet.getRange(i, 2, 1, data[0].length).setBorder(false, false, true, false, false, false, color, SpreadsheetApp.BorderStyle.SOLID_MEDIUM); 27 } 28 } 29}
ㅤ
ㅤ
ㅤ
【現状の問題点】
以下の様に、同じ値を持つセルが隣り合っているときは適用されるものの、そうでない場合は適用されません。(C6に外枠が適用されていない)
試行錯誤しても何が間違っているのか分からなかったため、こちらで質問させていただいた次第です。
ご回答のほどよろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー