0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

GASでシート一覧を取得してシート名とリンクを自動取得する

0
Last updated at Posted at 2025-11-04

記事の概要

・GASでシート名とリンクを一括で取得する

はじめに

GASでシート名とリンクを自動で取得したい場合に使えるものになっています。
例えば、実務で1スプレッドシートに複数のシートがあり、目次がわりに使えるものとなっています。
今まで手動でシート名とリンクを作成していたのが、ボタン一つで取得するので非常に便利なものになっています。
>>>私が運営するブログはこちら。メインは技術ブログですが、副業やポイ活についても紹介!

GASで作成するもの

今回は、シート名とリンクを自動で取得するGASを作っていきます。
①下記のようなボタンがあったとします。
スクリーンショット 2025-11-04 21.09.37.png
②シートはいくつか用意しておきましょう。
スクリーンショット 2025-11-04 21.11.09.png
③シート最新化のボタンを押すと、自動でシート名とリンクを取得します。
スクリーンショット 2025-11-04 21.09.05.png
ボタンを押すだけで、シート名とリンクを取得できるので、作成しておいて損はありません。

GASを実行するための事前準備

①まずは、下記のようにヘッダーとボタンを用意します。
スクリーンショット 2025-11-04 21.14.38.png

②Geminiで作成したスクリプトを拡張機能>Apps Scriptに貼り付けます。
③図形のボタンを右クリックして、縦3この点をクリックすると、スクリプトを割り当てとあります。
スクリーンショット 2025-11-04 21.28.19.png
④先ほど拡張機能>Apps Scriptに貼り付けた関数名(function 関数名となっているので、関数名を割り当てる

GASのスクリプト

下記のコードは、Geminiを用いてコードを生成しています。

/**
 * 現在のスプレッドシート内の全シート名とそのリンクを取得し、
 * 「集計シート」以外のシートを「シート一覧」に自動で出力します。
 */
function listSheetNamesAndLinks() {
  // 処理対象のスプレッドシート全体を取得
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  
  // スプレッドシートのIDとベースとなるURLを取得
  const ssId = ss.getId();
  const baseUrl = `https://docs.google.com/spreadsheets/d/${ssId}/edit#gid=`;
  
  // すべてのシートを取得
  const sheets = ss.getSheets();
  
  // シート一覧の名前を定義
  const summarySheetName = "シート一覧";
  
  // シート一覧に書き込むデータを格納する配列
  const data = [];

  // シート名とリンクを収集(集計シートは除外)
  sheets.forEach(sheet => {
    const sheetName = sheet.getName();
    
    // ★ 集計シート(summarySheetNameで定義したシート)の場合はスキップ ★
    if (sheetName !== summarySheetName) {
      const sheetId = sheet.getSheetId();
      
      // シートへの直接リンクURLを生成
      const sheetUrl = baseUrl + sheetId;
      
      // HYPERLINK関数形式で記述
      // 書式: =HYPERLINK("リンク先URL", "リンク")
      const hyperlinkFormula = `=HYPERLINK("${sheetUrl}", "リンク")`;
      
      // データ配列に追加
      data.push([sheetName, hyperlinkFormula]);
    }
  });

  // ------------------------------------------------------------------
  // データを「シート一覧」に出力
  let summarySheet = ss.getSheetByName(summarySheetName);
  
  // 「シート一覧」が存在しない場合は新しく作成
  if (!summarySheet) {
    summarySheet = ss.insertSheet(summarySheetName);
  } else {
    // 既存のデータをクリア
    summarySheet.clearContents();
  }

  // ヘッダー行を書き込み
  const header = ["シート名", "リンク"];
  summarySheet.getRange(1, 1, 1, header.length).setValues([header]).setFontWeight("bold");

  // 収集したデータを書き込み
  if (data.length > 0) {
    // データがヘッダーの次の行から始まるように調整 (2行目から)
    summarySheet.getRange(2, 1, data.length, data[0].length).setValues(data);
  }
}

これで、シート名とリンクを自動で取得できるスクリプトがかけましたので実行できます。

まとめ

今回は、自動でシート名とリンクを取得するGASを説明しました。
シート名とリンクが自動で取得できれば、実務でも役に立つかと思います。
もし、まだ手動でシート名やリンクを取得しているようでしたら、GASで何か自動化できないかなと考えてみて、Geminiでコード生成すれば簡単にGASで業務効率化ができます。

◯エンジニア基礎力を向上させる前に、AIに頼理すぎてませんか?エンジニアとして一生の基礎力がつくおすすめの技術本を紹介しているので、ぜひ要チェックです!
【AIに頼りすぎではないですか?】エンジニア基礎力を底上げするおすすめ技術書まとめ

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?