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

②シートはいくつか用意しておきましょう。

③シート最新化のボタンを押すと、自動でシート名とリンクを取得します。

ボタンを押すだけで、シート名とリンクを取得できるので、作成しておいて損はありません。
GASを実行するための事前準備
②Geminiで作成したスクリプトを拡張機能>Apps Scriptに貼り付けます。
③図形のボタンを右クリックして、縦3この点をクリックすると、スクリプトを割り当てとあります。

④先ほど拡張機能>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に頼りすぎではないですか?】エンジニア基礎力を底上げするおすすめ技術書まとめ
