web-dev-qa-db-ja.com

Googleスプレッドシートの保護されたセルを複製する

Googleスプレッドシートのドキュメント全体に保護されたセルが散らばったスプレッドシートを作成しました。ここで、スプレッドシートを複製し、新しいワークシートの保護されたセルに同じ保護を保持させます。新しいスプレッドシートは同じワークブック(タブ)にあります。新しいワークシートにコピーアンドペーストを試みましたが、保護以外はすべてコピーされました。

このタスクをどのように達成しますか?

7
Deb

「ネイティブ」機能(つまり、スクリプトではない)ではできないことを後悔しています。 サポート には:

編集者が保護されたシートを複製する、ワークブックをコピーする、または新しいバージョンをアップロードする場合、シート保護は無効になります。また、閲覧者がスプレッドシートのコピーを作成した場合、保護されたシートのデータをコピーで編集できます。

そしてこの警告:

保護されたシートと範囲は、スプレッドシートのコンテンツを意図せずに変更することを防ぐのに役立ちますが、すべてのアクションがブロックされるわけではないため(たとえば、印刷、コピーと貼り付け、インポートとエクスポート)、セキュリティ上の目的で使用しないでください。信頼できる人とのみスプレッドシートを共有してください。

保護範囲はシート固有です。範囲を保護する場合、範囲参照のみを提供する場合でも、関連するシート名がこれらに自動的に追加されることに気づいたかもしれません。あなたはmightコピーされたシート(たとえばS1)のために、既存のシート(たとえばS2)のそれらを犠牲にします)保護されたシートと範囲ウィンドウですべてのS1!S2!に手動で変更します。

2
pnuts

Googleスプレッドシートで、許可とともにシートを複製する方法

このページには、スクリプトを使用して保護を維持しながら、同じブック内でシートをコピーする方法についての説明があります。私はそれを使用し、それは素晴らしく機能しました。これで、ワークブックで同じことを行う方法を理解できたとしたら。

1
user147812

すでに pnutsで言及 であったように、残念ながら、保護された範囲をコピーして保護設定を保持する組み込み機能はありません。

別の方法は、保護設定を適用するために Google Apps Script を使用することです。シートをコピーするために使用できます。 クラス保護 では、スクリプトの実行を開始するのに役立ついくつかの例があります。基本から学習を開始する必要がある場合は、 https://developers.google.com/apps-script/overview をご覧ください。

0
Rubén