OfficeType

VBA~すべてのシート名をセルに書き出そう~Excel

VBAで全てのシート名をセルに書き出す方法を解説します。

シート名を取得したい場合はWorksheet.Nameプロパティを使います。Worksheets(インデックス番号).Nameでシート名を取得できます。インデックス番号は左のシートから1,2,3・・・となっているので、For文で1からワークシートの数ぶん繰り返せばすべてのシート名が書き出せます。ワークシートの数はWorksheets.Countプロパティで取得できるのでFor文の変数をaとし初期値を1、最終値をWorksheets.Countとします。繰り返す処理にCells(a, 1) = Worksheets(a).Nameとしています。a=1のときはCells(1, 1) = Worksheets(1).NameとなるのでセルA1にインデックス番号1のシートつまり一番左のシートの名前を入力します。a=2のときはCells(2, 1) = Worksheets(2).NameとなるのでセルA2にインデックス番号2のシートつまり左から2番目のシートの名前を入力します。この処理をワークシートの数ぶん繰り返すので全てのシート名が書き出せます。

Sub test1()

Dim a As Long

For a = 1 To Worksheets.Count

Cells(a, 1) = Worksheets(a).Name

Next

End Sub

image-01