エクセルでシート名を抽出してリスト化するマクロを作る方法

エクセル

あなたはエクセルで膨大なシート名をリスト化するのが面倒だと思ったことはありませんか?

例えば、iPadでエクセルを使ってアンケートを入力しているとします。1ユーザー1シートで入力したとき、その集計で、シート別に入力したものの内容をまとめるのが必要です。そのときに、まずシート名をリスト化したい事があると思います。

シート名を1つずつ手作業でコピペするのは面倒ですよね。

1000件とかあると手作業なんてありえません。

エクセルVBAを使えば、シート名はボタン1つでリスト化できます。

今回は「エクセルでシート名を抽出してリスト化するマクロを作る方法」を紹介します。

エクセルでシート名を抽出してリスト化するマクロを作る方法

エクセルでシート名を抽出してリスト化するマクロを作る方法です。

下の画像のように、シートを複数用意しました。50個くらいあります。

マクロを作るときは、「開発」タブを使います。
開発タブが出ていない方は、下のリンクで出し方を紹介していますので、まずは準備をお願いします。
→エクセルで開発タブを表示する方法

1.「開発」タブをクリック →「挿入」をクリック →「ボタン」をクリック

2.「新規作成」をクリック

3.コード入力画面が開く

4.コードを入力

コードを入力します。

新しいシート(シートリスト)を作成して、各シート名を縦方向にリスト化する、という意味です。

赤枠部のコードです。

Dim ws As Worksheet
Dim sheetName As String
Dim cell As Range
Dim targetCell As Range
Dim newListSheet As Worksheet

' 新しいシートを作成
Set newListSheet = Sheets.Add(After:=Sheets(Sheets.Count))
newListSheet.Name = "シートリスト"

' A2セルを開始セルとして指定
Set targetCell = newListSheet.Range("A2")

' 既存のリストをクリア
targetCell.CurrentRegion.Clear

' 各シート名をリストに追加
For Each ws In ThisWorkbook.Sheets
    sheetName = ws.Name
    Set cell = targetCell.Offset(targetCell.CurrentRegion.Rows.Count, 0)
    cell.Value = sheetName
Next ws

コードを入力したら、コードの入力画面を閉じて下さい。

5.ボタンができた →範囲を選択 →ボタンをクリック

ボタンができました。

ボタンをクリックします。

6.シート名がリスト化された

「シートリスト」のシートができて、シート名がリスト化されました。

Sheet00とか、Sheet14(2)とか、手入力でシート名変更した分も、きちんとリスト化されています。

これで何枚シートがあるかもわかるし、その右側に各シートのデータの抜き出しもしやすくなります。

まとめ

エクセルでシート名を抽出してリスト化するマクロを作る方法です。

1.「開発」タブをクリック →「挿入」をクリック →「ボタン」をクリック

2.新規作成をクリック

3.コードを入れる画面が出る

4.コードを入力

5.ボタンができた →ボタンをクリック

6.シート名がリスト化された

これで、たくさんのシートがあっても、リスト化や集計が素早くできますね!

シート名以外にも、フォルダ名をリスト化したいときもありますよね。

下のリンク先で、フォルダ名をリスト化する方法も紹介していますので、参考にどうぞ。

→エクセルでフォルダー内のフォルダーリストをシートに書き出すマクロボタンを作る方法

コメント

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