ご訪問ありがとうございます。
Googleシートマスターのひろしです。
前回
【GAS】シートをまとめて削除する方法(Gスプレッドシート)
今回は、とっても価値の高い方法をお伝えします。
これを知ることであなたは、
- スプレッドシートのシート一覧を取得できるようになります。
- シートの表示/非表示を切り替えられるようになります。
- JavaScriptにおけるforEachやmapさらにfilterの例がわかります。
ちょっと、ややこしいかもしれませんが
ぜひ、動画を見ながらチャレンジしてみてください。
そして
と答えてあげてください。
動画はこちら
スクリプト
//シートの一覧を取得
function getListOfSheets() {
const ss = SpreadsheetApp.getActiveSpreadsheet()
const sheets = ss.getSheets() //すべてのシートを取得
const sheetnames = sheets.map(sheet => {
return [sheet.getSheetName(), sheet.isSheetHidden()]
})
// console.log(sheetnames)
const mgws = ss.getSheetByName("管理シート")
// console.log(sheetnames.length,sheetnames[0].length)
mgws.getRange(2, 1, sheetnames.length, sheetnames[0].length).setValues(sheetnames)
}
//表示/非表示の切り替え
function showHideSheets() {
const ss = SpreadsheetApp.getActiveSpreadsheet()
const mgws = ss.getSheetByName("管理シート")
const manageData = mgws.getRange("A2:B")
.getValues()
.filter(line => line[0] != "")
manageData.forEach(line => {
// console.log(line[0], line[1]) //line[0]は、シート名
const ws = ss.getSheetByName(line[0])
line[1] ? ws.hideSheet() : ws.showSheet()
})
}
マインドセットします。
マインドセット
forEachやmapを使うことでJavaScriptの世界が広がる
forEachやmapを使うことでJavaScriptの世界が広がる
forEachやmapのコールバック関数の考え方は
ちょっと難しいと思います。
私自身、なんども一旦「なるほど」と
理解しても、使用しないので、
しばらくすると忘れる日々が続きました。
そんな私みたくならないように
何度かやってみてください。
では、今回のGoogleシートマスターへの究極の方法です。
Step1.
シート一覧用のシートを作成しシート名を「管理シート」にする
(あるは、Step2でスクリプト内のシート名を変更する)
Step2.
「管理シート」のA1セルに「シート名」
B1セル「非表示」と記入する。
Step3.
B2セル以降のB列にチェックボックスを挿入する
シート一覧用のシートを作成しシート名を「管理シート」にする
(あるは、Step2でスクリプト内のシート名を変更する)
Step2.
「管理シート」のA1セルに「シート名」
B1セル「非表示」と記入する。
Step3.
B2セル以降のB列にチェックボックスを挿入する
Step4.
スクリプトエディタを開き上記スクリプトをコピペする
Step5.
スクリプトを保存し実行してみる
では、早速、シート一覧用のシートを作成してください
今すぐです。
最後までご覧いただきありがとうございます。
つぎはこちら
【GAS】シート一覧からシートの位置を自由自在に変更する方法(Gスプレッドシート)