📝

スプレッドシート内のシートに一括で「編集可(警告付き)」を設定する

2021/06/01に公開

2024年追記

今はファイル全体を保護することが容易になってしまい、以下スクリプトの出番はなくなりました。


背景

開発が終わって保守フェーズに入った設計書だとか、
うっかり間違えて更新すると困るドキュメントだとかを軽く保護したい。
所定のユーザしか更新できないようにすることもできるけど、メンバーの入れ替わりを考えると現実的ではない。

スプシは自動保存なので「編集権限があるユーザが見るだけのつもりで開いたのに、うっかりキーを押してしまって更新される」ということがよく起きる。
編集履歴がついてしまってなんかやだ。

ということで「編集可(警告付き)」の出番です。
これはシートを編集しようとしたとき、アラートが出てワンクッション置いてくれる機能。うっかり編集はこれで防げるはず。

これはGUIだと1シートずつしか設定できません。
大量シートをぽちぽちやっていたら発狂してしまうのでGASさんにお願いします。

GAS

function setWarningAllSheats() {
  var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();
  for (var i = 0; i < sheets.length; i++) {
    console.log(sheets[i].getName());
    var protection = sheets[i].protect().setDescription('誤編集防止のため');
    protection.setWarningOnly(true);
  }
}

1回実行すればいいからカスタムメニュー追加もしない。スクリプトエディタで実行すればよし。

ちゃんと設定された。やったね。

Discussion