【GAS】リンク付きシート一覧で非表示のシートを無視する方法

シートの操作

GAS シートの操作一覧

ご訪問ありがとうございます。

Googleシートマスターのひろしです。

前回

【GAS】リンク付き(目次的な)シート一覧を作成する方法(Gスプレッドシート)
  • HYPERLINK関数の使用方法がわかります。
  • GAS上で関数の引数を設定する方法がわかります。
  • シート一覧から各シートに飛べるようにできます。
  • 今回は、とっても価値の高い方法をお伝えします。


    これを知ることであなたは、

    • GASでシートが非表示かどうかを判別する方法がわかります。
    • 2次元バッファに格納する方法がわかります。

    なので、サクッとマスターして

    と答えてあげてください。

    ご質問

    【GAS】リンク付き(目次的な)シート一覧を作成する方法(Gスプレッドシート)
  • HYPERLINK関数の使用方法がわかります。
  • GAS上で関数の引数を設定する方法がわかります。
  • シート一覧から各シートに飛べるようにできます。
  • ありがとうございます。非常助かっております。 非表示のシートは一覧を取得しないようにするにはどうしたらいいでしょうか?

     

    動画はこちら

    【GAS】Googleスプレッドシート リンク付きシート一覧、非表示のシートを無視する方法

    シートはこちら

    *クリックすることでシートが開きます。

    スクリプトはこちら

    //リンク付きシート一覧の作成(非表示シートは無視する)
    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】複数のスプレッドシートのシート一覧を作成する
  • スプレッドシートIDからシート一覧を作成できます。
  • 複数のスプレッドシートのシート一覧を作成できます。
  • GAS シートの操作一覧

    コメント

    タイトルとURLをコピーしました