VBA 全シート名を取得して各シートのセルの値を取得する

VBA 全シート名を取得して各シートのセルの値を取得する

VBAで、全シート名を取得して各シートのセルの値を取得するコードを記述してます。

環境

  • OS windows10 64bit

各シートのセルの値を取得

各シートのセルの値を取得するには、「Sheets.Count」でシート数をカウントして、存在する数だけ「Sheets().Name」でシート名を取得後に「Worksheets」に値を設定します。

適当なボタンを用意して、各シート「A列」の1行目にあるデータを取得して、「Sheet1」のセルに出力する、
ソースコードを記述します。

Private Sub CommandButton1_Click()
    
    Dim i As Long
    
    For i = 1 To Sheets.Count
    
        Cells(i, 2) = Worksheets(Sheets(i).Name).Cells(1, 1).Value
        
    Next i    
    
End Sub

実行してみます。

取得されていることが確認できます。

「For Each」を使用した場合は、以下のようになります。

Private Sub CommandButton1_Click()

    Dim i As Long
    
    i = 1
    
    For Each sheetName In Worksheets
    
        Cells(i, 2) = Worksheets(sheetName.Name).Cells(1, 1).Value
        
        i = i + 1

    Next
    
End Sub