Excelで目次を作る!シート名自動出力マクロ【無料配布】
このページでは、この動画で使用しているマクロの配付と解説を行います。
ぜひ、Excelの仕事効率化にご活用ください。
コード
Sub sheetName()
Dim ws As Worksheet
Dim i As Long
Set ws = Sheets(1) '任意のシート名を入れてください。例:Sheets("目次")
ws.Move before:=Sheets(1)
For i = 2 To Worksheets.Count
ws.Cells(i,1).Value=Worksheets(i).Name
Next i
End Sub
動画で使用しているプログラミングコードです。
解説
共通部分の解説はこちら!
4行目
Set ws = Sheets(1)
ここでは、1番目にある(一番左)シートにシート名を出力するように設定しています。
wsという名前の箱(変数)に1番目のシート(Sheets(1))を代入(Set)しているわけです。
なので、2番目3番目のシートに出力するようにしたい場合は、Sheets(2)、Sheets(3)とし、
名前で指定代入する場合は、Sheets("目次")など””で囲ってシート名を間違えなく入力すれば大丈夫です!
5行目
ws.Move before:=Sheets(1)
先ほどのwsに代入したシートをシート1(Sheets(1))より前に(before)動かして(Move)います。
つまり自分で決めたwsを一番前に移動させています。
「目次」を作る前提なので、一番前に移動させていますが、なくてもちゃんとマクロは機能します。
6行目
For i = 2 To Worksheets.Count
別のコード
Next i
ここで、繰り返し作業(For~Next)をさせています。
2番目のシートから最後のシート(Worksheets.Count)までのシート名を取得したいので、順番に同じ作業(別のコード)ができるような繰り返しの枠をつくっているイメージです。
7行目
ws.Cells(i,1).Value=Worksheets(i).Name
ここがメインの作業になります。
先ほど設定した繰り返し作業の中にあるコードなので、「i」に2~14(今回の動画で使っているExcelファイルは14枚のシートがあるため)
の数字が順番に入っていきます。
「ws」のセル(Cells)i「2~14」行目の1列目(i,1)の値(Value)を、ワークシート「i」番目(2~14)の名前を入れる。
といった意味のコードなので、最初は「i」に2が入り、次に3,4…と14まで順番に数字が入ります。
なので2行目の1列目に2番目のシート名が出力され、3行目の1列目に3番目のシート名が出力、4行目の1列目に4番目のシート名が出力…
と繰り返しシート名が出力されています。
使い方
マクロ(VBA)を入力する方法や、実行する方法、ボタンを作る方法は、こちらをご確認ください。