📝

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

1 min read

背景

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

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

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

これは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回実行すればいいからカスタムメニュー追加もしない。スクリプトエディタで実行してくれ。

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