【エクセルマクロ】別シートのセル値をループ:使用例5選

VBA-別シートのセル値をループ-アイキャッチ ExcelVBA

エクセルマクロで、別シートのセル値をループするVBAコードをご紹介します。

このページのマクロコードは、コピペで使えます。
ぜひお試しください!

別シートのセル値をループ(For文)

以下のマクロを実行すると、別シートのセル値をループします。


Sub 別シートのセル値をループ()

Dim Ws As Worksheet
Dim i As Long
Dim LastRow As Long

    Set Ws = Sheets("Sheet2")
    
    LastRow = Ws.Cells(Rows.Count, 1).End(xlUp).Row
    
    For i = 1 To LastRow
        Debug.Print Cells(i, 1).Value
    Next i

End Sub

マクロ実行前

「Sheet1」を開いた状態で、マクロを実行します。


 

マクロ実行後

別シートである「Sheet2」の値を取得できました。

イミディエイトウィンドウに取得結果が表示されました。


 
 

別シートのセル値をループ(For文_複数列)

以下のマクロを実行すると、別シートのセル値をループします。


Sub 別シートのセル値をループ()

Dim Ws As Worksheet
Dim i As Long
Dim j As Long
Dim LastRow As Long
Dim LastClm As Long

    Set Ws = Sheets("Sheet2")

    '最終行
    LastRow = Ws.Cells(Rows.Count, 1).End(xlUp).Row
    
    '最終列
    LastClm = Ws.Cells(1, Columns.Count).End(xlToLeft).Column

    For i = 1 To LastClm
        For j = 1 To LastRow
            Debug.Print Cells(j, i).Value
        Next j
    Next i

End Sub

マクロ実行前

「Sheet1」を開いた状態で、マクロを実行します。


 

マクロ実行後

別シートである「Sheet2」の値を取得できました。

イミディエイトウィンドウに取得結果が表示されました。


 
 

別シートのセル値をループ(ForEach文)

以下のマクロを実行すると、別シートのセル値をループします。


Sub 別シートのセル値をループ()

Dim Ws As Worksheet
Dim Rng As Range

    Set Ws = Sheets("Sheet2")
    
    For Each Rng In Ws.Range("A1:A10")
        Debug.Print Rng.Value
    Next

End Sub

マクロ実行前

「Sheet1」を開いた状態で、マクロを実行します。


 

マクロ実行後

別シートである「Sheet2」の値を取得できました。

イミディエイトウィンドウに取得結果が表示されました。


 
 

別シートのセル値をループ(ForEach文_複数列)

以下のマクロを実行すると、別シートのセル値をループします。


Sub 別シートのセル値をループ()

Dim Ws As Worksheet
Dim Rng As Range
Dim LastRow As Long
Dim LastClm As Long

    Set Ws = Sheets("Sheet2")

    '最終行
    LastRow = Ws.Cells(Rows.Count, 1).End(xlUp).Row

    '最終列
    LastClm = Ws.Cells(1, Columns.Count).End(xlToLeft).Column
    
    For Each Rng In Ws.Range(Cells(1, 1), Cells(LastRow, LastClm))
        Debug.Print Rng.Value
    Next

End Sub

マクロ実行前

「Sheet1」を開いた状態で、マクロを実行します。


 

マクロ実行後

別シートである「Sheet2」の値を取得できました。

イミディエイトウィンドウに取得結果が表示されました。

※行ごとに値を取得します。


 
 

別シートのセル値をループ(ForEach文_複数列)

以下のマクロを実行すると、別シートのセル値をループします。


Sub 別シートのセル値をループ()

Dim Ws As Worksheet
Dim Rng As Range
Dim Rng2 As Range
Dim LastRow As Long
Dim LastClm As Long

    Set Ws = Sheets("Sheet2")

    '最終行
    LastRow = Ws.Cells(Rows.Count, 1).End(xlUp).Row

    '最終列
    LastClm = Ws.Cells(1, Columns.Count).End(xlToLeft).Column
    
    For Each Rng In Ws.Range(Cells(1, 1), Cells(LastRow, LastClm)).Columns
        For Each Rng2 In Range(Rng.Address)
            Debug.Print Rng2.Value
        Next
    Next
    
End Sub

マクロ実行前

「Sheet1」を開いた状態で、マクロを実行します。


 

マクロ実行後

別シートである「Sheet2」の値を取得できました。

イミディエイトウィンドウに取得結果が表示されました。

※列ごとに値を取得します。


 
 
この記事がお役に立ちますと幸いです。
 

【エクセルマクロ】別シートにコピーする:使用例10選
...

 

「プログラマーの本気がExcelを覚醒させる 超絶ExcelVBA」
ExcelVBAでワンランクアップできる書籍
具体的で応用が利く技をたくさん掲載