Googleスプレッドシートでセル保護を解除せずにシートをコピーする方法

Office系ソフトウェア

Googleスプレッドシートでシートを保護している状態でコピーしたい場合、通常、保護されていない状態でコピーされてしまうことがあります。しかし、セルを保護したままコピーを行いたい場合の対処法について、以下に解説します。

Googleスプレッドシートのセル保護とコピーの問題

Googleスプレッドシートでセルを保護することで、誤って編集されたくないセルや範囲を守ることができますが、シートをコピーする際に、保護設定が解除されてしまうという問題があります。この問題は、シートをコピーした際に、新しいシートにおける保護設定が引き継がれないことに起因しています。

シートコピー時にセル保護を維持する方法

セル保護を維持したままシートをコピーするには、以下の方法を試すことができます。

  • 方法1:シートをコピーする際に「スプレッドシートの設定」からコピーオプションを選ぶことで、保護を維持できることがあります。シートをコピーして新しいシートに貼り付ける前に、コピー元のシートで保護されている範囲が設定されているか確認してください。
  • 方法2:コピー後に新しいシートで手動でセル保護を再設定する。コピー後、シート内の各範囲のセル保護を再設定することで、元の保護を引き継ぐことができます。
  • 方法3:スクリプトを利用する。Google Apps Scriptを使用して、保護されたセル範囲を新しいシートに自動的にコピーすることができます。これにより、手動での再設定を省略することができます。

Google Apps Scriptを使ってセル保護をコピーする

Google Apps Scriptを使用して、シートのセル保護をコピーすることができます。以下のスクリプトを実行することで、コピー元のシートの保護されたセル範囲を新しいシートにコピーできます。

function copyProtection() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet();
  var sourceSheet = sheet.getSheetByName('元のシート名');
  var targetSheet = sheet.getSheetByName('コピー先シート名');

  var protections = sourceSheet.getProtections(SpreadsheetApp.ProtectionType.RANGE);
  for (var i = 0; i < protections.length; i++) {
    var protection = protections[i];
    targetSheet.getRange(protection.getRange().getA1Notation()).protect().setDescription(protection.getDescription());
  }
}

このスクリプトを実行することで、保護されたセル範囲をコピーして新しいシートに設定できます。

まとめ

Googleスプレッドシートでセル保護を維持したままシートをコピーするには、手動で再設定するか、Google Apps Scriptを利用する方法があります。最適な方法を選んで、シートの保護を適切に維持するようにしましょう。

コメント

タイトルとURLをコピーしました