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

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

PR

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

  1. ALT + F11キーを同時押しし、「VBA」ウインドウを表示
  2. CTRL + Gキーを同時押しし、「イミディエイト」ウィンドウを表示
  3. 「イミディエイト」ウインドウに下記のコードを入力(コピー&ペースト)してENTERキーを押下
debug.Print "----------":For Each sheet In ActiveWorkbook.Sheets:debug.Print sheet.Name:Next
PR

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

出力されたテキストを選択して、右クリックし、「コピー」クリックし、任意の場所に貼り付ける。

PR

よく使う場合はマクロを登録して使う

よく使う場合はマクロ登録して、マクロを実行したり、ショートカットを設定すると良い。

実行すると、クリップボードにシート名の一覧をコピーするサンプルプログラムを紹介する。

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をコピーしました