Excelファイルに大量のExcelシートが存在する場合、Excelシート名の一覧を取得する方法を紹介する。
Excel シート名の一覧を取得する手順概要
- ALT + F11キーを同時押しし、「VBA」ウインドウを表示
- CTRL + Gキーを同時押しし、「イミディエイト」ウィンドウを表示
- 「イミディエイト」ウインドウに下記のコードを入力(コピー&ペースト)してENTERキーを押下
debug.Print "----------":For Each sheet In ActiveWorkbook.Sheets:debug.Print sheet.Name:Next
Excel シート名の一覧を取得する手順
たくさんシートがあるExcelファイルを開き、一番前面に表示する
ALT + F11 キーを同時押しする
「VBA(Microsoft Visual Basic for Applications)」の画面が表示される
CTRL + Gキーを押して下部に「イミディエイト」ウィンドウを表示
「イミディエイト」ウインドウが表示される
「イミディエイト」ウインドウに下記のコードを入力(コピー&ペースト)してENTERキーを押下
debug.Print "----------":For Each sheet In ActiveWorkbook.Sheets:debug.Print sheet.Name:Next
出力されたテキストを選択して、右クリックし、「コピー」クリックし、任意の場所に貼り付ける。
よく使う場合はマクロを登録して使う
よく使う場合はマクロ登録して、マクロを実行したり、ショートカットを設定すると良い。
実行すると、クリップボードにシート名の一覧をコピーするサンプルプログラムを紹介する。
Public Sub GetSheetList()
Dim strSheetList As String
Dim strMessage As String
Dim objSheet As Worksheet
Dim objTextBox As Object
For Each objSheet In ActiveWorkbook.Sheets
strSheetList = strSheetList + objSheet.Name & vbCrLf
Next
Set objTextBox = CreateObject("Forms.TextBox.1")
With objTextBox
.MultiLine = True
.Text = strSheetList
.SelStart = 0
.SelLength = .TextLength
.Copy
End With
strMessage = ""
strMessage = strMessage & "クリップボードに保存しました。" & vbCrLf
strMessage = strMessage & "CTRL + V で任意の場所に貼り付けてください。" & vbCrLf
Call MsgBox(strMessage, vbInformation + vbOKOnly, "クリップボードに保存")
Set objTextBox = Nothing
End Sub