Googleドキュメントのスプレッドシートのセルに値を設定しようとしています。
function exampleFunction() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
var range1 = sheet.getRange("A1");
var value1 = range1.getValue();
value1+=1;
range1.setValue(2);
return value1;
}
この関数でセルに影響を与えようとすると、次のエラーが表示されます。
SetValueに必要な権限がありません。 (10行目、ファイル "ddd")
私がそれをどのようにして実現できるか知っていますか?実際に、影響を受けるセルがセルA1の値を取得し、A1 +1の値を増やしたいと思います。
ありがとうございました
ドキュメントから:
カスタム関数は値を返しますが、セルの外に値を設定することはできません。ほとんどの場合、セルA1のカスタム関数はセルA5を変更できません。ただし、カスタム関数がdouble配列を返す場合、結果は関数を含むセルをオーバーフローし、カスタム関数を含むセルの下および右のセルを埋めます。 return [[1,2]、[3,4]];。を含むカスタム関数でこれをテストできます
参照: スプレッドシートのカスタム関数
上記の関数をカスタム関数として使用しているようです。つまり、次のようにして、GoogleスプレッドシートのUIのセル数式から呼び出されます。
=exampleFunction()
Googleスプレッドシートのカスタム関数 には、権限を必要とするGoogle Appsスクリプトサービスの呼び出しに使用できないなどの制限があります。回避策は、別の手段を使用して関数を呼び出すことです。
また、これらは ダイアログおよびサイドバー 、 Google Apps Script Web apps から、および Google Apps Script実行API を使用して呼び出すこともできます。