【ExcelVBA】全ワークシート名を表示

ExcelVBA,シートの操作

自ブックの場合

全ワークシート名を表示

Sub Sample()

  Dim WS As Worksheet
 
  For Each WS In ThisWorkbook.Worksheets
    Debug.Print WS.Name
  Next

End Sub
※実行結果はイミディエイト画面に表示されます。

全ワークシートの名前とタブ色をセルに書き込む

Sub Sample()

  Dim WS As Worksheet

  With ThisWorkbook.Worksheets("Sheet1")
    '.Cells.Clear 'Sheet1内を全クリア
    .Cells(1, 1) = "ワークシート"
    .Cells(1, 2) = "WS.Tab.ColorIndex"
    .Cells(1, 3) = "WS.Tab.Color"
  End With
  
  For Each WS In ThisWorkbook.Worksheets
    With ThisWorkbook.Worksheets("Sheet1").Cells(Rows.Count, 1).End(xlUp)
      .Offset(1, 0) = WS.Name
      .Offset(1, 0).Interior.Color = IIf(WS.Tab.ColorIndex >= 0, WS.Tab.Color, xlNone)
      .Offset(1, 1) = WS.Tab.ColorIndex
      .Offset(1, 2) = WS.Tab.Color
    End With
  Next

End Sub
※4行目のコメントアウトを解除すると、書き込みは上書きモードになります。
※15行目で三項演算子(iif関数)を使用しています。

iif( 比較判定 , 真の時の処理 , 偽の時の処理 )
iif( WS.Tab.ColorIndex >= 0 , WS.Tab.Color , xlNone)

WS.Tab.ColorIndex の、色付TABの戻り値は 正数 のため、真判定です。WS.Tab.Color の値を Interior.Color に代入します。
WS.Tab.ColorIndex の、色無TABの戻り値は -4142 のため、偽判定です。 XlNone を Interior.Color に代入します。

結果例

※Sheet1 はタブが選択されてて分かりづらいですが、色無TABです。

他ブックの場合

他ブックの全ワークシート名を表示

Sub Samplee()

  Dim TargetWB As String
  Dim WS As Worksheet
  
  TargetWB = "Book2.xlsx"
 
  For Each WS In Workbooks(TargetWB).Worksheets
    Debug.Print WS.Name
  Next

End Sub
※6行目を目的のブック名に書き換えてください。
※実行結果はイミディエイト画面に表示されます。

他ブックの全ワークシートの名前とタブ色をセルに書き込む

Sub Sample()
  
  Dim TargetWB As String
  Dim WS As Worksheet
  
  TargetWB = "Book2.xlsx"
  
  With ThisWorkbook.Worksheets("Sheet1")
    '.Cells.Clear 'Sheet1内を全クリア
    .Cells(1, 1) = "ワークシート"
    .Cells(1, 2) = "WS.Tab.ColorIndex"
    .Cells(1, 3) = "WS.Tab.Color"
  End With
  
  For Each WS In Workbooks(TargetWB).Worksheets
    With ThisWorkbook.Worksheets("Sheet1").Cells(Rows.Count, 1).End(xlUp)
      .Offset(1, 0) = WS.Name
      .Offset(1, 0).Interior.Color = IIf(WS.Tab.ColorIndex >= 0, WS.Tab.Color, xlNone)
      .Offset(1, 1) = WS.Tab.ColorIndex
      .Offset(1, 2) = WS.Tab.Color
    End With
  Next

End Sub
※6行目を目的のブック名に書き換えてください。
※9行目のコメントアウトを解除すると、書き込みは上書きモードになります。
※18行目で三項演算子(iif関数)を使用しています。

iif( 比較判定 , 真の時の処理 , 偽の時の処理 )
iif( WS.Tab.ColorIndex >= 0 , WS.Tab.Color , xlNone)

WS.Tab.ColorIndex の、色付TABの戻り値は 正数 のため、真判定です。WS.Tab.Color の値を Interior.Color に代入します。
WS.Tab.ColorIndex の、色無TABの戻り値は -4142 のため、偽判定です。 XlNone を Interior.Color に代入します。

結果例