GASで効率化!Googleスプレッドシートの非表示シートをまとめて再表示・削除する方法

この記事をおすすめの方
  • Googleスプレッドシートを使っている方
  • 1つのファイルに非表示のシートが10個以上ある方
  • シートを手動で再表示 or 削除する時間を節約したい方

スプレッドシートで週次レポートなどのデータを管理する中で、非表示のシートが増え続けてしまうことありませんか?

シートの非表示は複数選択でできますが、面倒なのが非表示にしたシートをまとめて再表示したり、削除したりしたいとき。

Googleスプレッドシートの場合、手動だと一つずつ再表示や削除するため手間がかかります。

そんな時に便利なのが、Google Apps Script(GAS)。

GASを使えば非表示のシートをまとめて再表示や、削除ができます。

GASというと難しく聞こえるかもしれませんが、スクリプトをコピーすれば使えるため、自分で書かなくても大丈夫です。

この記事では、GASを活用して非表示シートをまとめて再表示する方法、および削除する方法をご紹介します。

目次

非表示シートをまとめて再表示させるスクリプト(GAS)

非表示シートをまとめて再表示させるスクリプト

function showAllSheets() {
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();  // 現在開いているスプレッドシートを取得
  var sheets = spreadsheet.getSheets();  // シートの一覧を取得
  
  // すべてのシートをチェック
  for (var i = 0; i < sheets.length; i++) {
    var sheet = sheets[i];
    if (sheet.isSheetHidden()) {  // シートが非表示の場合
      sheet.showSheet();  // シートを表示する
    }
  }
}

黒い画面の右上にコピーボタンがあります。

スクリプトの説明

SpreadsheetApp.getActiveSpreadsheet()

今開いているスプレッドシート全体を取得するコマンド。
どのスプレッドシートでスクリプトを実行しているかを指定する部分です。


spreadsheet.getSheets()

現在のスプレッドシート内に存在するすべてのシートを配列(リスト)として取得。
ここで取得されるのは、非表示・表示関係なく、すべてのシートです。


for

ループ。
取得したすべてのシートを一つずつチェックして、非表示になっているかどうかを確認します。

sheet.isSheetHidden()

シートが非表示かどうかを確認する関数。
非表示の場合は、true を返します。

sheet.showSheet()

非表示状態のシートを表示します。
isSheetHidden() で非表示と判断されたシートだけが対象です。

スクリプト実行後

非表示にしていたすべてのシートが再表示されます。

非表示のシートが数枚程度であれば、一つずつ再表示しても時間はかかりませんが、シートが大量にある場合はGASを使うと時間を節約できます。

非表示シートをまとめて削除するスクリプト(GAS)

非表示シートをまとめて削除するスクリプト

function deleteHiddenSheets() {
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  var sheets = spreadsheet.getSheets();
  
  for (var i = sheets.length - 1; i >= 0; i--) {
    var sheet = sheets[i];
    if (sheet.isSheetHidden()) {
      spreadsheet.deleteSheet(sheet);
    }
  }
}

黒い画面の右上にコピーボタンがあります。

スクリプトの説明


SpreadsheetApp.getActiveSpreadsheet()

今開いているスプレッドシートを取得します。

spreadsheet.getSheets()

すべてのシートを取得します。ここでも、非表示かどうかに関係なく、すべてのシートが対象です。

for

ループ。
deleteHiddenSheets では、シートのリストを逆順でチェックしています。
これは、削除する際に、リストの順序がずれてエラーが発生するのを防ぐためです。

sheet.isSheetHidden()

シートが非表示かどうかを確認するための関数。
非表示のシートだけを削除対象にします。

spreadsheet.deleteSheet(sheet)

非表示のシートを削除します。このコマンドで、不要になった非表示シートを一気に削除できます。

削除前にファイルのバックアップを取っておくことをおすすめします。

非表示のシートを削除するスクリプトはこんな時に使うと便利です。

  • シートを非表示にしていたけど、もう使うことがない
  • ファイル容量が一杯でシートコピーできなくなったため整理したい

スクリプトの使用方法

スクリプトの使用方法
  • ツールバー – 拡張機能 – Apps Script
  • スクリプト貼付け
  • スクリプト保存
  • 実行
  • シートが再表示 or 削除される
STEP
ツールバーの『拡張機能 – Apps Script』を選択
STEP
スクリプトを貼付ける

function myFunction(){

}

が最初から入っているため、消去して先ほどのスクリプトを貼り付けます。

STEP
『プロジェクトを保存』を押す
STEP
『実行』を押す
STEP
完了

実行完了となればOKです。
非表示のシートが再表示 or 削除されていることを確認します。

初めてスクリプトを実行する場合は権限の確認が必要です。

そのため、『権限を確認』を押します。

続いて、『詳細』を押します。

『無題のプロジェクト(安全ではないページ)に移動』を押します。

その後、『許可』を押します。

まとめ

非表示シートをまとめて再表示させるスクリプト

function showAllSheets() {
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  var sheets = spreadsheet.getSheets();
  
  for (var i = 0; i < sheets.length; i++) {
    var sheet = sheets[i];
    if (sheet.isSheetHidden()) {
      sheet.showSheet();
    }
  }
}

非表示シートをまとめて削除するスクリプト

function deleteHiddenSheets() {
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  var sheets = spreadsheet.getSheets();
  
  for (var i = sheets.length - 1; i >= 0; i--) {
    var sheet = sheets[i];
    if (sheet.isSheetHidden()) {
      spreadsheet.deleteSheet(sheet);
    }
  }
}

今回紹介したスクリプトは非表示のシートが大量にある場合に便利です。

めんどうな作業はGoogle Apps Script(GAS)に任せて、時間を節約しましょう。

弊社では、Google Apps Script(GAS)を活用した業務効率化のサポートを提供しております。

GASのカスタマイズやエラー対応にお困りの際は、ぜひお気軽にご相談ください。

また、ITツールの導入支援やIT導入補助金の申請サポートも行っております。

貴方の業務改善を全力でサポートいたします。

お問い合わせはこちら

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次