【エクセルマクロ】最終行の下に貼り付け:使用例8選

EXCELVBA最終行の下に貼り付け-アイキャッチ ExcelVBA

エクセルマクロで、最終行の次の行に貼り付けするVBAコードを記載しています。

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

最終行の下に貼り付け

以下のマクロを実行すると、最終行に同じデータを繰り返し貼り付けます。


Sub 最終行に貼付()
    Dim lastRow As Long
    Dim i As Long
    
    ' 3回繰り返す
    For i = 1 To 3
    
        ' A列の最終行+1行
        lastRow = Cells(Rows.Count, 1).End(xlUp).Row + 1
        
        ' 指定範囲のデータをA列の最終行に貼り付け
        Range("A1:A2").Copy Range("A" & lastRow)
    Next i
    
End Sub

 

マクロ実行前


 

マクロ実行後

A1:A2 のデータを、A列の最終行から3回繰り返しコピーします。


 
 

最終行の下に貼り付け(特定列)

以下のマクロを実行すると、特定列の最終行にデータを貼り付けます。


Sub 最終行にペースト()
    Dim lastRowA As Long
    Dim lastRowC As Long
    
    ' A列の最終行を取得
    lastRowA = Cells(Rows.Count, "A").End(xlUp).Row
    
    ' C列の最終行を取得
    lastRowC = Cells(Rows.Count, "C").End(xlUp).Row
    
    ' A列のデータをC列の次の行から貼り付け
    Range("A1:A" & lastRowA).Copy Range("C" & lastRowC + 1)

End Sub

 

マクロ実行前


 

マクロ実行後

A列のデータをC列の最終行に貼り付けます。


 
 

最終行の下に貼り付け(複数列)

以下のマクロを実行すると、複数列のデータを特定列の最終行に貼り付けます。


Sub 最終行にペースト()
    Dim lastRow As Long
    Dim lastRowE As Long
    Dim i As Long
   
    'A~C列をループ
    For i = 1 To 3
    
        ' E列の最終行を取得
        lastRowE = Cells(Rows.Count, "E").End(xlUp).Row
    
        ' 各列の最終行を取得
        lastRow = Cells(Rows.Count, i).End(xlUp).Row
    
        ' 各列のデータをE列の最終行の1行下に貼り付け
        Range(Cells(1, i), Cells(lastRow, i)).Copy Range("E" & lastRowE + 1)
    Next i

End Sub

 

マクロ実行前


 

マクロ実行後

A~C列のデータをE列の最終行に貼り付けます。


 
 

最終行の下に貼り付け(別シート)

以下のマクロを実行すると、別シートの最終行に貼り付けます。


Sub 最終行に貼り付け()
    Dim ws1 As Worksheet
    Dim ws2 As Worksheet
    Dim lastRow1 As Long
    Dim lastRow2 As Long
    
    ' シートを指定
    Set ws1 = ThisWorkbook.Sheets("Sheet1")
    Set ws2 = ThisWorkbook.Sheets("Sheet2")
    
    ' Sheet1の最終行を取得
    lastRow1 = ws1.Cells(ws1.Rows.Count, "A").End(xlUp).Row
    
    ' Sheet2の最終行を取得
    lastRow2 = ws2.Cells(ws2.Rows.Count, "A").End(xlUp).Row
    
    ' データをコピー&貼り付け
    ws1.Range("A2:D" & lastRow1).Copy ws2.Range("A" & lastRow2 + 1)
End Sub

 

マクロ実行前


 

マクロ実行後

Sheet1 のA~D列のデータを、Sheet2の最終行の1行下に貼り付けます。
Sheet1 の1行目は貼り付けません。


 
 

最終行の下に貼り付け(別シート複数)

以下のマクロを実行すると、複数シートのデータを特定シートの最終行に貼り付けます。


Sub 最終行に貼付()
    Dim ws As Worksheet
    Dim ws4 As Worksheet
    Dim lastRow As Long
    Dim copyRange As Range
    
    ' Sheet4の設定
    Set ws4 = ThisWorkbook.Sheets("Sheet4")
    
    ' Sheet1, Sheet2, Sheet3 のループ
    For Each ws In ThisWorkbook.Worksheets
        If ws.Name <> "Sheet4" Then ' Sheet4以外のワークシートを処理
        
            ' 各シートの最終行の取得
            lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
            
            ' コピー範囲の設定(2行目以降)
            Set copyRange = ws.Range("A2:D" & lastRow)
            
            ' データのコピーと貼り付け
            copyRange.Copy ws4.Cells(ws4.Cells(ws4.Rows.Count, "A").End(xlUp).Row + 1, 1)
        End If
    Next ws
End Sub

 

マクロ実行前


 

マクロ実行後

Sheet1 ~ Sheet3 の最終行までのデータをコピーして、
Sheet4 の最終行の次の行から貼り付けます。

Sheet1 ~ Sheet3 の1行目は貼り付けません。


 
 

最終行の下に貼り付け(ユーザーが選択した範囲 InputBox)

以下のマクロを実行すると、手動で選択した範囲のデータを最終行に貼り付けます。


Sub 最終行に貼付()
    Dim selectedRange As Range
    Dim lastRow As Long
    
    On Error Resume Next
        '手動で範囲を選択
        Set selectedRange = Application.InputBox("コピーする範囲を選択:", Type:=8)
    On Error GoTo 0
    
    If Not selectedRange Is Nothing Then
    
      'F列の最終行を取得
        lastRow = Cells(Rows.Count, 6).End(xlUp).Row
        
        '選択したデータをF列に貼り付け
        selectedRange.Copy Cells(lastRow + 1, 6)
    End If
End Sub

 

マクロ実行前


 

マクロ実行後

「コピーする範囲を選択」画面が表示されるので、範囲を選択します。
今回はA5:D6 を選択します。


 

選択した範囲のデータを、F列の最終行から1行下に貼り付けます。


 
 

最終行の下に貼り付け(InputBox)

以下のマクロを実行すると、手動で入力した値を最終行に貼り付けます。


Sub 最終行に値入力()
    Dim lastRow As Long
    
    ' A列の最終行の行番号を取得
    lastRow = Cells(Rows.Count, 1).End(xlUp).Row
    
    ' 最終行の次の行に値を入力する
    Cells(lastRow + 1, 1).Value = InputBox("データを入力してください:")
End Sub

 

マクロ実行前


 

マクロ実行後

「データを入力してください」画面が表示されるので、値を入力して「OK」をクリックします。


 

入力したデータを、A列の最終行から1行下に貼り付けます。


 
 

最終行の下に貼り付け(数式)

以下のマクロを実行すると、最終行に数式を貼り付けます。


Sub 計算式を最終行に貼付()
    Dim lastRow As Long
    
    'A列の最終行を取得
    lastRow = Cells(Rows.Count, 1).End(xlUp).Row
    
    '数式を貼り付け
    Cells(lastRow + 1, 1).Formula = "=SUM(A1:A10)"
End Sub

 

マクロ実行前


 

マクロ実行後

A列の最終行に数式をペーストします。


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

【エクセルマクロ】最終行までコピーする:使用例6選
...

 

「ExcelVBA自動化のすべて ~35の事例で課題解決力を身につける~」
業務改善コンサルタントが教える ビジネスの現場で役立つExcelVBAの知識を解説
基本的な解決法と、応用例も紹介しています!