Excel シート名の一覧を一括で取得する

Excelファイルに大量のExcelシートが存在する場合、Excelシート名の一覧を取得する方法を紹介する。

Excel シート名の一覧を取得する手順概要

  1. ALT + F11キーを同時押しし、「VBA」ウインドウを表示
  2. CTRL + Gキーを同時押しし、「イミディエイト」ウィンドウを表示
  3. 「イミディエイト」ウインドウに下記のコードを入力(コピー&ペースト)して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
タイトルとURLをコピーしました