1 つのマスター スプレッドシートと複数のコピーがあります。このマスター スプレッドシートでは、いくつかのスクリプトを使用しています。
このマスター スプレッドシートのすべてのコピーを、マスター スプレッドシートと同じスクリプトにリンクすることはできますか?
目的:
- マスター スプレッドシートのスクリプトの変更は、コピーによって自動的に使用されます。
- 別名:低メンテナンス
1 つのマスター スプレッドシートと複数のコピーがあります。このマスター スプレッドシートでは、いくつかのスクリプトを使用しています。
このマスター スプレッドシートのすべてのコピーを、マスター スプレッドシートと同じスクリプトにリンクすることはできますか?
目的:
amleczkoは正しいです。GoogleAppsスクリプトの新しいライブラリ機能を使用する必要があります。
ただし、今日の時点では、(複数のスプレッドシートに同じスクリプトを使用して)希望どおりの操作を実行することはできません。代わりにできることは、ライブラリを作成するために、スクリプトのバージョンを保存することです([ファイル]> [バージョンの管理...])。次に、このライブラリを他のスプレッドシートにインポートします([リソース]> [ライブラリの管理...])。「開発モード」をオンにすると、ライブラリに加えられたすべての変更が、このライブラリを使用するスプレッドシートですぐに有効になります。それ以外の場合は、変更のたびにライブラリの新しいバージョンを保存し、それを使用してすべてのスプレッドシートでライブラリのバージョン番号を手動で更新する必要があります。
問題は、次のようなスケルトン関数を使用して、ライブラリを使用してすべてのスプレッドシートにスクリプトを作成する必要があることです。
function doSomething(){
myLibrary.doSomething();
}
これは変わったと思います。2012 年 5 月 22 日から始まる第 40 号によると、そのような可能性があります。チェックしてください:
あなたが考えているこの方法では不可能です。少なくとも、まだです (問題 40を参照)。
ただし、スクリプトの使用方法によっては、それらを「難しい方法」で接続することも、スクリプトを 1 つだけ使用することもできます。マスター スプレッドシートのスクリプトは、他のスプレッドシート ファイルを開き、「リモートで」ジョブを実行できます。スプレッドシートと対話する (読み取り/書き込み) ために、スクリプトをスプレッドシートでホストする必要はありません。スプレッドシート イベント トリガー (on-open、on-edit、on-form-submit) を使用する場合は、スプレッドシートでホストされるスクリプトのみが必要です。
マスター シートでスクリプト用の優れた UI を開発し、それをサービスとして公開できるかもしれません。次に、別のブラウザー タブで同じ UI にアクセスするためのリンクのみをコピーに設定します。リンクにパラメーターを追加すると、スクリプト UI は、それを「トリガー」している特定のスプレッドシートに適応することさえできます。
ま、今想像できるのはここまでです。しかし、残念ながら、この優れた「回避策」に合わないユースケースがいくつかあります。それらについては、 40号にのみ星を付けることができ(投票して更新を追跡するため)、それがすぐに開発されることを願っています.
スプレッドシートを自動生成するスクリプトを使用するときに、この問題を解決しました。
通常、「情報」と呼ばれるスクリプトを使用して、スプレッドシートにシートを追加します。これを使用して、スクリプトにとって重要な情報を格納します。より多くのスプレッドシートを自動生成するスクリプトでは、作成されたシートのIDを追跡します。このようにして、「リンクされた」すべてのシートをすばやく呼び出し、同じスクリプトを使用してそれらを操作できます。スクリプトを1つのシートに記述し、マスターシートまたはその子から完全に分離しておくことも価値があるかもしれません。
この関数を見てください、それはあなたにいくつかのアイデアを与えるかもしれません。