Rasmus による以前の回答に対する考えられる問題の簡単な修正:
行上:
var rangeRowEnd = rangeRowStart + range.getHeight();
var rangeColEnd = rangeColStart + range.getWidth();
加算しています(実際には、最初の行と列を減算していません。これにより、1行と1列全体で予想される範囲よりも大きな範囲になります。同じ行で1を減算するだけです:
var rangeRowEnd = rangeRowStart + range.getHeight()-1;
var rangeColEnd = rangeColStart + range.getWidth()-1;
Rasmus Fuglsnag によるコードと修正は次のようになります。
function onEdit(e)
{
var sheet = SpreadsheetApp.getActiveSheet();
var editRange = sheet.getActiveRange();
var editRow = editRange.getRow();
var editCol = editRange.getColumn();
var range = sheet.getRange("B4:J6");
var rangeRowStart = range.getRow();
var rangeRowEnd = rangeRowStart + range.getHeight()-1;
var rangeColStart = range.getColumn();
var rangeColEnd = rangeColStart + range.getWidth()-1;
if (editRow >= rangeRowStart && editRow <= rangeRowEnd
&& editCol >= rangeColStart && editCol <= rangeColEnd)
{
// Do your magic here
}
}
これを行う最も簡単な方法を提供してくれたRasmus Fuglsnagに感謝します。コードでこれを行うためのより簡単な方法があるとは信じられません。