2022/05/25に更新

【GASで時短】すべてのシートを保護する

スプレッドシート小技

スプレッドシートの全てのシートを「保護」するGoogle Apps Scriptです。一時的にすべてのシートの更新を止めたい時などにどうぞ。

こんな悩みを解決します


  • みんな意図しない内容で更新している・・いったん自分以外が編集できないように保護したい!
  • 共有相手を閲覧権限に変えていくのが面倒なので、とりあえずシートを保護して閲覧のみにしたい。

用意するもの


特にありません。今お使いのGoogleスプレッドシートに組み込めます。

このスクリプトで出来ること


  • 開いているスプレッドシートの全てのシートを、一発で保護することができます。

使い方


1.スクリプトの実行

サンプルとして複数のシートを作成しました。スクリプトを実行するとすべてのシートが保護されるはずです。

上のメニューにある「スクリプト実行」から「すべてのシートを保護する」を実行します。

2.実行の確認

「すべてのシートを自分以外が編集できないように保護します、よろしいですか?」と確認メッセージが表示されます。

3.結果の確認

暫く待つと、シート名に鍵アイコンが追加されました。保護されたようです。

スクリプト


/**
 * このスクリプトの説明、使い方はこちら。
 * https://myfunc.jp/items/00091/index.html
 */

function onOpen() {
  // スプレッドシートを開いたときに実行される関数

  // UIの取得
  const ui = SpreadsheetApp.getUi()

  // メニューの表示名
  const menu = ui.createMenu('スクリプト実行');

  // メニューに追加するボタン
  menu.addItem('すべてのシートを保護する', 'protect_all_sheets');

  // メニューを画面に追加する
  menu.addToUi();
}

function protect_all_sheets() {

  // 画面にアラートを表示するためにUIオブジェクトを取得
  const ui = SpreadsheetApp.getUi();

  // 実行の確認メッセージを表示する
  const response1 = ui.alert('すべてのシートを自分以外が編集できないように保護します\n\nよろしいですか?', ui.ButtonSet.OK_CANCEL);

  // キャンセルが押されたらスクリプトを終了する
  if (response1 == ui.Button.CANCEL) {
    return;
  }

  // スプレッドシートオブジェクトを取得
  const ss = SpreadsheetApp.getActiveSpreadsheet();

  // すべてのシートを取得
  const sheets = ss.getSheets();

  // 1つずつシートを保護していく
  for (let i = 0; i < sheets.length; i++) {

    let description = sheets[i].getName() + 'の保護'; // 説明文を作る
    sheets[i].protect().setDescription(description); // シートを保護し、説明も登録する

  }
}

関連するアプリ


【GASで便利に】キーワードを含むセル番地を一覧表示する

検索キーワードを全シートから探して、ヒットしたセル番地をまとめて表示するGoogle Apps Scriptです。標準の検索機能ではヒットしたセルが1個ずつ分かりますが、まとめて知りたくなったので作成しました。

【GASで時短】全シートに条件付き書式をセットする

すべてのシートに条件付き書式を適用してくれるGoogle Apps Scriptです。条件付き書式は便利ですが手動で設定するのは面倒なんですよね。

【GASで時短】全シートの条件付き書式を削除する

すべてのシートのすべての条件付き書式を削除するGoogle Apps Scriptです。条件付き書式はシート単位で操作する必要があり、面倒なので作成しました。

【GASで時短】全てのシートのデータを1シートにまとめる

スプレッドシートの全てのシートのデータを、1つのシートに集約するGoogle Apps Scriptです。各シートで列が揃っていないと使いにくいですが、思いつきで作ってみました。

【GASで時短】すべてのシートを非表示にする

いま開いているシート以外のすべてのシートを非表示にするGoogle Apps Scriptです。あまり見られたくない作業用シートがたくさんあるときにどうぞ。

【GASで時短】全シートの行・列固定を解除する

全てのシートの行固定、列固定を解除するGoogle Apps Scriptです。ニーズはあんまりなさそうですが、思いつきで作ってみました。

【GASで便利に】フィルタ条件がセットされている列を確認する

どの列にフィルタ条件が設定されているのか教えてくれるGoogle Apps Scriptです。列が大量にあると、どこに条件がかかっているのか探すのが大変ですよね。

【GASで時短】フォルダ内のスプレッドシートを結合する

指定したフォルダにあるスプレッドシートをすべて連結するGoogle Apps Scriptです。生徒・受講者の課題をチェックするときに1ファイルずつ開くのは面倒で、1つのスプレッドシート(ブック)にまとめたくなったので作りました。

【GASで時短】セルの保護をすべて解除する

すべてのシートを対象に、保護されたセルをすべて解除する Google Apps Scriptです。保護をまとめて解除したいときにどうぞ。

タグ一覧

最新のアプリ

人気のアプリ

myfunc.jp