同様の問題がありました.1つの特定のセルを「監視」して機能をトリガーしたかったのです。
私は次のことを行いました(A1が私が見ているセルであるふりをします)
IF(LEN(A1) < 1, " ", customFunction() )
そのセルを編集したことがある場合、これは正常にトリガーされました。でも:
「カスタム関数は値を返しますが、それらが含まれるセルの外に値を設定することはできません。ほとんどの場合、セル A1 のカスタム関数はセル A5 を変更できません。ただし、カスタム関数が double 配列を返す場合、結果は含まれるセルをオーバーフローします。カスタム関数を含むセルの下と右のセルに入力します。return [[1,2],[3,4]]; を含むカスタム関数でこれをテストできます。" から: https://developers.google.com/apps-script/execution_custom_functions
これはほとんど役に立たないものですが、あなたのケースではうまくいくかもしれませんか?
カスタム関数がプロジェクトトリガーに割り当てられている場合、それはより強力なので、個人的には「スクリプト>リソース>現在のプロジェクトトリガー>編集中」に追加するのをやめました
基本的に「列を監視」したため、現在のセルが「編集範囲」内にある場合にのみ処理が行われました。これは少し面倒で、いくつかの隠しセルが必要ですが、現時点ではうまくいきます
var rowIndex = thisspreadsheet.getActiveCell().getRowIndex();
var colIndex = thisspreadsheet.getActiveCell().getColumn();
//clamp to custom range
if(rowIndex < 3 && colIndex != 5)
{
return 0;
}
//check against copy
var name = SpreadsheetApp.getActiveSheet().getRange(rowIndex, 5).getValue();
var copy = SpreadsheetApp.getActiveSheet().getRange(rowIndex, 6).getValue();
if(name != copy )
{
///value has been changed, do stuff
SpreadsheetApp.getActiveSheet().getRange(rowIndex, 6).setValue(name);
}