しごと自動化レシピ

WORK RECIPE GAS

ブック内のシート名と使用範囲を棚卸しする

現在のスプレッドシートにあるシート名、使用行数、使用列数、非表示状態を一覧へまとめます。整理前の構成確認に使い、空シートを自動削除しない点検用のコードです。

実行確認の記録なし

公式資料を参照して構成した手順です。本記事の操作・コードの実行は未確認です。小さな入力例で期待結果を確かめてから利用してください。

できあがるもの

出力は見出し1行と実行前のシート数ぶんの行です。売上は4行2列、メモは1行1列となり、非表示状態はTRUEまたはFALSEで表示されます。

始める前に

  • ブラウザ版Googleスプレッドシートの編集権限と紐付きApps Script
  • コピーした検証用ファイルで実行。Apps ScriptはV8ランタイムを利用
  • 対象ファイルはシート数100枚以内、出力先「シート一覧」は未作成
入力例

検証用ファイルに「売上」(A1:B4を使用)と「メモ」(A1だけを使用)の2シートを用意します。シート数は実際の構成で変わります。

手順

  1. 検証用ファイルをコピーし、使っていないシートを消す前の記録として利用します。非表示シートも権限があれば一覧に含まれるため、出力の共有先は原本と同じ範囲で管理します。
  2. 以下をスクリプトへ貼り付けて保存します。独立した例なので、ほかの記事の同名関数があるプロジェクトには混ぜません。 /** @OnlyCurrentDoc */ function inventorySheets() { const ss=SpreadsheetApp.getActive(), sheets=ss.getSheets(); if(ss.getSheetByName('シート一覧') || sheets.length>100) throw Error('シート数・出力名を確認'); const rows=[['シート名','使用行','使用列','非表示']]; for(const s of sheets) rows.push(["'"+s.getName(),s.getLastRow(),s.getLastColumn(),s.isSheetHidden()]); const out=ss.insertSheet('シート一覧'); out.getRange(1,1,rows.length,4).setValues(rows); out.setFrozenRows(1); }
  3. inventorySheetsを手動実行して、初回の権限を確認します。売上の使用行が4、使用列が2、メモが1と1になるか確認してください。
  4. 一覧は実行前のシート構成を取るため、新しく作るシート一覧自身は含みません。再調査する場合は既存一覧を保管または削除し、実行日を一覧の外に記録してください。

期待結果と照合する

出力は見出し1行と実行前のシート数ぶんの行です。売上は4行2列、メモは1行1列となり、非表示状態はTRUEまたはFALSEで表示されます。

まずこの入力例で確認し、件数や値が一致しているかを見ます。完了表示だけで判断せず、重複・空欄・対象外データも残っていないか確認してください。

うまくいかないとき

  • getLastRowとgetLastColumnは内容のある末端を示し、配置可能な最大行列数やファイル容量とは異なります。
  • 数式が空文字を返すセルも使用範囲に影響するため、見た目の空白と一致しないことがあります。

止める・元に戻す

シート一覧だけを削除して関数を外します。元シートの名前や表示状態、データは変更していません。

公式資料・対応範囲

参照日:2026-10-17。公式資料の一般的な機能説明と、本記事固有の入力例の実行検証は別です。実務での短縮時間や効果は未計測です。

同じツールで試す

GASの記事一覧へ →