2

必要なスプレッドシートにロードするライブラリとして使用するスクリプトがあります。

スプレッドシートに追加するときは、ライブラリの対応するメソッドを呼び出す onEdit および onLoad 関数を定義します。

ライブラリで使用できるグローバル変数を定義するために、ライブラリを使用している個々のシートが必要です。その変数はシートのセルに設定されていない可能性があります。

設定してみた

var previd = "myid";

スプレッドシートスクリプトの先頭にありますが、それではうまくいかないようです。

どうすれば解決できますか?

4

1 に答える 1

6

「グローバル スコープ」はスクリプト間で共有されるのではなく、実際には「スクリプト スコープ」です。

ライブラリ関数に必要なすべての変数は、これらの関数にパラメーターとして渡す必要があります。多くの関数を同じパラメーターで呼び出す場合は、object. 一部のApps Script組み込み関数同様に、 .optArguments

setParametersこれらの変数を 1 回 (ランタイムごとに) 渡し、次のライブラリ呼び出しで使用できるようにする関数をライブラリに持つこともできます。このようなもの:

//on the library script
var clientParams = null;
function setParameters(parameters) { clientParams = parameters; }
function exampleFunc() { return clientParams.previd; }


//on your client script
library.setParameters({previd:'myid', otherParam:'example'});

//then you can call
library.exampleFunc();
于 2012-11-12T04:50:59.253 に答える