質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

Q&A

解決済

1回答

3264閲覧

(GAS)指定したシート以外を非表示にしたい

minmin03

総合スコア1

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

0グッド

1クリップ

投稿2021/03/17 01:42

編集2021/03/17 03:06

以下のものをネットで見つけて、最後の
spreadsheet.deleteSheet(sh);の
deletesheetをhideSheetにすればいいのかと思いましたが、
スクリプト実行時に
TypeError: spreadsheet.hideSheet is not a function hideSheets @ コード.gs:37
とエラーが出て出来ませんでした。
GAS初心者です。ご教授お願いします。

// プログラム0|スプレッドシート名の設定
function DeleteSheets() {

// プログラム1|スプレッドシートの情報を取得
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet = spreadsheet.getActiveSheet();

// プログラム2|削除したくないシート名を配列で格納
var sheets = ['シート1','シート2'];

// プログラム3|スプレッドシートのシート数を取得
var sheetcount = spreadsheet.getNumSheets();

// プログラム4|スプレッドシートのシート数だけ繰り返す
for(var i = sheetcount; i > 1; i--){

// プログラム5|flagをtrue設定 var flag = true; // プログラム6|変数shに一番右にあるシートを設定 var sh = spreadsheet.getSheets()[i-1]; //アクティブなスプレッドシートに存在するシートを、[i-1]により配列の要素数で指定して取得し、変数shに代入 // プログラム7|プログラム2で設定したシートを確認 for (var k=0; k<sheets.length; k++){ // プログラム8|shがプログラム2で設定した削除したくないシートかどうかを判別 if (sh.getName() == sheets[k]){ // プログラム9|flagをfalseに変更してプログラム7の繰り返しループから抜ける flag = false; break; } } // プログラム10|flagがtrueならshを削除 if (flag == true){ spreadsheet.deleteSheet(sh); }

}
}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2021/03/17 01:51

コードはマークダウン機能を使って見やすくしてください.質問内容は編集・追記できます. あと,できないの内容を具体的に書いてください.シートが非表示にならないのか意図していないシートが非表示になるのか,そもそも実行時にエラーが出て実行されないのか等,何が起きているのかわからないと回答の方向性が明後日になります.
guest

回答1

0

ベストアンサー

公式リファレンスで仕様を確認しましょう。

hideSheet()

Hides this sheet. Has no effect if the sheet is already hidden. If this method is called on the only visible sheet, it throws an exception.

Class Sheet  |  Apps Script  |  Google Developers

ということで、hideSheetは引数をとらず、対象となるシートに対してメソッドを指定するという仕様です。

Diff

1-spreadsheet.hideSheet(sh); 2+sh.hideSheet();

投稿2021/03/17 02:30

編集2021/03/17 03:23
Daregada

総合スコア11990

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

minmin03

2021/03/17 03:55

出来ました!!ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問