Google Apps Script にはまだ (2020 年 1 月 7 日)、Google スプレッドシートのネイティブ関数への API が含まれていません。
ただし、スプレッドシートで名前付き範囲として名前が付けられたセルの数式 (ネイティブ関数) を設定できます。
次にGASで:
var nativeOutput = spreadsheet.getRangeByName("outputCell").getValue();
出来上がり!GAS は、セル内のネイティブ関数を呼び出しています。
他のセルの数式によって参照されるシート (または任意のシート) 内の別のセルに名前を付けることで、GAS からセル内のネイティブ関数にデータを送信できます。
spreadsheet.getRangeByName("inputCell").setValue(inputData);
GAS は、これらのセルをハードコーディングするのではなく、動的に作成できます。たとえば、次のようになります。
// Create native function, its input and output cells; set input value; use native function's output value:
// Use active spreadsheet.
var spreadsheet = SpreadsheetApp.getActive();
// Name input, output cells as ranges.
spreadsheet.setNamedRange("inputCell", spreadsheet.getRange("tuples!F1"));
spreadsheet.setNamedRange("outputCell", spreadsheet.getRange("tuples!F2"));
var outputCell = spreadsheet.getRangeByName("outputCell");
var inputCell = spreadsheet.getRangeByName("inputCell");
// Set native formula that consumes input cell's value, outputting in formula's cell.
outputCell.setFormula("=WEEKNUM(inputCell)");
// Call native function by setting input cell's value for formula to consume.
// Formula sets its cell's value to formula's output value.
inputCell.setValue(15);
// Consume native function output.
var nativeOutput = outputCell.getValue();
Logger.log("nativeOutput: "+ JSON.stringify(nativeOutput)); // Logs "nativeOutput: 3"
注意: この手法では、スプレッドシート ユーザーがアクセス/変更できるセル内のコードが公開され、他のスプレッドシート操作によってこれらのセルが上書きされる可能性があります。