私は 100 の異なる学校の Google スプレッドシートを管理しています。各学校のスプレッドシートには同様の機能 (たとえば、日付に基づいて特定のセルにジャンプする、または入力されたテキストに基づいて特定のセルにメモを作成する) があり、複数の人が編集するためのアクセス権を持ちます (たとえば、校長、教師、コーチ、等)。各スプレッドシートの機能は同じなので、この目的のためにライブラリを作成するのが最も簡単だと思います! たとえば、各ドキュメントのスクリプト ファイルは、onOpen()
イベントを使用して を呼び出します.addMenu()
。次に.addMenu
ラッパー関数を呼び出し、この関数がライブラリの「jumpToToday」メソッドを呼び出します。(ライブラリメソッドをメニューから直接呼び出すことができないという投稿を見たので、このようにしました)。2 つの質問があります。
私 (所有者) がスプレッドシートを編集者と共有すると、メニューが表示されますが、編集者がメニュー オプションのいずれかを選択すると、スクリプトは次のエラーを返します。
ExternalSupport
スクリプトで使用されているlibrary へのアクセス権がないか、ライブラリが削除されています。これを見た後、ライブラリ ファイル (Can View) をスプレッドシート エディタと共有したところ、機能しました。 関数を実行できるように、スプレッドシートのすべての編集者とライブラリ (表示のみ) を共有する必要がありますか? もしそうなら、それでいいです (ほとんどの校長/教師/コーチは技術者ではないので、私はそれを避けようとしていたので、コードのファイルを共有して混乱させたくありませんでした...私は彼らにスプレッドシートを使用してもらいたいだけです) )。
スプレッドシートの編集者はライブラリを表示することしかできないため、選択されているバージョンにしかアクセスできないようです (開発モードがオンになっていても)。
ライブラリを別のバージョンに更新する場合、100 個のスプレッドシートすべてのスクリプト エディタに移動し、[リソース] > [ライブラリの管理] に移動してバージョンを更新する必要がありますか? または、すべてのファイルで最新バージョンのライブラリを使用する方法はありますか?