2022/04/26に更新

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

スプレッドシート小技

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

こんな悩みを解決します


  • 作業用だったり重要じゃなさそうなシートが大量にあるけど、消すのはまずそうだから非表示にしてお茶を濁したい・・・でも手動で1つずつ処理するのはめんどくさい。

用意するもの


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

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


  • 現在開いているアクティブなシート以外の、全てのシートを非表示にすることができます。

使い方


1.データの準備

サンプルとして、適当にシートを量産してみました。

2.スクリプトの実行

上のメニューにある「スクリプト実行」から「シートを全て非表示にする」を実行します。
今開いているのは「シート30」なので、これ以外のシートが非表示になるはずです。

3.実行の確認

処理を実行してもよいのか聞かれます。問題なければOKを押します。

4.結果の確認

選択中だった「シート30」以外のシートが全て非表示になりました。
再表示したい場合は上のメニューの「表示」 > 「非表示のシート」から対象のシートを選択してください。

スクリプト


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

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

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

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

  // メニューに追加するボタン
  menu.addItem('シートを全て非表示にする', 'hide_all_sheets');

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


function hide_all_sheets() {

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

  // 現在開いているスプレッドシートを取得
  const ss = SpreadsheetApp.getActiveSpreadsheet();

  // 実行を確認する
  const response = ui.alert('現在開いているシート以外の全てのシートを非表示にします。
よろしいですか?', ui.ButtonSet.OK_CANCEL);

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

  // スプレッドシートに存在するすべてのシートを取得
  const sheets = ss.getSheets();

  // いま開いているシートを残すため、IDを取得しておく
  const active_sheet_id = ss.getActiveSheet().getSheetId();

  // ループで1シートずつ処理していく
  for (let i = 0; i < sheets.length; i++) {

    // シートIDがアクティブなシートと一致した場合はスキップする
    if (active_sheet_id == sheets[i].getSheetId()) {
      continue;
    } else {
      sheets[i].hideSheet();
    }

  }
}

関連するアプリ


【GASで効率化】複数のシートを一括生成する

スプレッドシート内の1シートを、指定した名前でコピーするGoogle Apps Scriptです。シート名が重複した場合はスキップします。

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

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

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

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

【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です。生徒・受講者の課題をチェックするときに1ファイルずつ開くのは面倒で、1つのスプレッドシート(ブック)にまとめたくなったので作りました。

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

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

タグ一覧

最新のアプリ

人気のアプリ

myfunc.jp