質問: (span / i).toFixed(1) Logger.log("最大:"+max+",最小:"+min+",平均:"+ave) } ``` ### 試したこと 当然ながらライブラリ側のコードを、実行側のプロジェクト内にコピーすれば問題なく動きますが、 出来れば一発で行けないかなと試行錯誤中です。 ですが現状の結論は、ライブラリー側が実行側のプロジェクトをライブラリー登録していないため、 実行側のスクリプトを実行することは不可と思っております。 それが正しいのであればこの方法はあきらめて実行時コピーで対応する方向でかんがえますが、 何かしら他のアイディアや情報がある場合は教えていただけると幸いです。
回答: eval()で実行するのではなく、引数としてFunctionオブジェクトを受け取り実行するのはどうでしょうか。 ``` //ライブラリ function log(callback) { Logger.log("Begin"); callback(); Logger.log("End")); } function log2(statement) { Logger.log("Begin2")); eval(statement); Logger.log("End2")); } //参照側 function myFunction3() { TestLib.log(() => Test()); //正常終了 TestLib.log2("Test()"); //ReferenceError: Test is not defined } function Test() { console.log("Test"); } ``` こんな感じで試して見ましたが、Functionオブジェクトを渡す形だとうまく動くようです。 ただTest()で出力しているログはライブラリ側に出力されていたので、ライブラリと呼び出し元のアカウントが異なる場合などは権限の問題でファイルにアクセスできなかったりするかもしれません。