ご訪問ありがとうございます。
Googleシートマスターのひろしです。
前回
【GAS】リンク付き(目次的な)シート一覧を作成する方法(Gスプレッドシート)
今回は、とっても価値の高い方法をお伝えします。
これを知ることであなたは、
- GASでシートが非表示かどうかを判別する方法がわかります。
- 2次元バッファに格納する方法がわかります。
なので、サクッとマスターして
と答えてあげてください。
ご質問
【GAS】リンク付き(目次的な)シート一覧を作成する方法(Gスプレッドシート)
ありがとうございます。非常助かっております。 非表示のシートは一覧を取得しないようにするにはどうしたらいいでしょうか?
動画はこちら
シートはこちら
*クリックすることでシートが開きます。(コピーしてお使いください)
スクリプトはこちら
//リンク付きシート一覧の作成(非表示シートは無視する)
function makehyperlink() {
const ss = SpreadsheetApp.getActiveSpreadsheet()
const url = ss.getUrl()
const sheets = ss.getSheets() //すべてのシートを取得
let hlinks = []
sheets.forEach(sheet => {
if (!sheet.isSheetHidden()) {
const sheeturl = `${url}#gid=${sheet.getSheetId()}`
const hlink = `=HYPERLINK("${sheeturl}","${sheet.getName()}")`
hlinks.push([hlink])
}
})
console.log(hlinks)
//ss.getSheetByName("シート87").getRange(2, 6, hlinks.length).setValues(hlinks)
}
ポイント
シートが非表示かどうかの判別
isSheetHidden()
で判別します。戻り値がtrueの場合は、非表示です。
なので、
if (!sheet.isSheetHidden()) {
とやることで、表示しているシートのみの処理となります。
forEach
前回は、map を使用していましたが、mapは、returnと
セットで使うことで生きてくるので、forEachに変更しました。
(そのままmapでも問題ないですが、ややモヤッとする)
バッファの格納
hlinks
バッファへの格納は、hlinks.push
とやることで
どんどん格納されます。
最後までご覧いただきありがとうございます。
つぎはこちら
【GAS】複数のスプレッドシートのシート一覧を作成する