5

保護された範囲を使用して範囲をロックダウンしたいのですが、UI を使用して、ユーザーが編集を行ったり、新しいデータを挿入したりできるようにしたいと考えています。編集は慎重に行いたいだけです。

いくつかの解決策を考えましたが、それらが負荷にどのように影響するかはわかりません。また、どの方向が最適なのかもわかりません:範囲の保護を解除して再保護し、編集権限を与えて削除します。組み込みの保護範囲機能の代わりに Java スクリプトを使用します。可能ではないようですが、スクリプトが私のアカウントから実行されたとしても機能します (ワークブックはすべて私のアカウントから設計されたとおりに機能しますが、保護された範囲への編集アクセス権があります)。

事前に感謝します。

スクリプトの背景: 社内の特定のプロジェクト用のワークブックと、2 つの方法で同期するマスター ワークブックがあります。単に施設/機能固有のタイトルであるルックアップ キーがあるため、両方の場所を同時に更新できるようにするスクリプトがあります。また、新機能用のテンプレート、または施設固有のプロジェクトごとに独自のテンプレートがあります。ユーザーがこれらのワークブック内に新しいシートを追加できるようにする必要があります。このデータは、マスター ワークブックの「AllTask​​s」シートを更新するために使用されます。さまざまなクエリですが、両方のワークブックで範囲を保護する必要があります。

4

2 に答える 2

1

アカウントからのスクリプトの実行は、スクリプトを Web アプリとしてデプロイする場合にのみ機能します。ユーザーは別の URL に移動し、フォームに入力し、送信するなどして、スクリプトがアカウントで実行されている限り (Web アプリとしてデプロイする場合はオプションがあります)、保護された範囲を挿入/更新します。編集権限があるためです。ユーザーは引き続きワークブックに個別にアクセスしてシートを追加できますが (編集権限がある限り)、保護された範囲に対して別の権限を持っていない限り、保護された範囲に触れることはできません。

しかし、ユーザーがこれらのスクリプトをスプレッドシートから直接実行する場合、あなたのアカウントから実行できるとは思えません。しかし、私は上記が最善の解決策になると思います。とにかく、範囲の保護/保護を解除できるスクリプトはまだ見当たりません。シートのみです。

于 2012-11-13T18:20:27.080 に答える
1

偶発的な編集から保護する必要がある場合は、データ検証ルールを設定できます。UI のスクリプトは、編集前にこれらのデータ検証ルールを調整できます。

var allowedText = "Yes" var cell = SpreadsheetApp.getActive().getRange('A1'); var rule = SpreadsheetApp.newDataValidation().requireTextEqualTo(allowedText).build(); cell.setDataValidation(rule); cell.setValue(allowedText);

これは悪意から保護するものではなく、セルの非表示、再表示、削除または追加、またはセルの内容の削除に対しても保護しませんが、セルの偶発的な上書きに対しては保護します。

于 2014-06-19T13:48:54.413 に答える