VBAで複数シートの最終行をコピーして貼り付ける方法

Excel

VBAを使用して、複数のシートで最下行をコピーし、値として貼り付ける方法について解説します。特に、WindowsのExcelでシートごとの操作を簡単に行いたい場合に便利なコード例を紹介します。

VBAコードでの最下行のコピー

まず、最下行をコピーして貼り付ける基本的な方法を紹介します。以下のコードでは、アクティブシートを対象に、最下行をコピーして、そのまま値として貼り付ける方法です。

Sub コピー数値貼り付け() 
 Dim ws As Worksheet 
 Dim lastRow As Long 
 
 'アクティブシートを対象とする 
 Set ws = ActiveSheet 
 
 'A列の最終行を取得 
 lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row 
 
 '最終行全体をコピー 
 ws.Rows(lastRow).Copy 
 
 'コピーした行に数値として貼り付け 
 ws.Rows(lastRow).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False 
 
 'コピーモードを解除 
 Application.CutCopyMode = False 
End Sub

このコードを実行することで、アクティブシートの最下行をコピーし、同じ場所に値として貼り付けることができます。

複数シートに対応するコード

複数のシートで同じ操作を行いたい場合は、次のようなコードに変更できます。

Sub コピー数値貼り付け全シート() 
 Dim ws As Worksheet 
 Dim lastRow As Long 
 
 '全てのシートに対してループ 
 For Each ws In ThisWorkbook.Worksheets 
 
 '各シートの最終行を取得 
 lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row 
 
 '最終行全体をコピー 
 ws.Rows(lastRow).Copy 
 
 'コピーした行に数値として貼り付け 
 ws.Rows(lastRow).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False 
 
 'コピーモードを解除 
 Application.CutCopyMode = False 
 Next ws 
End Sub

このコードでは、全てのシートに対して最下行をコピーして値として貼り付けることができます。

エラーを避けるためのポイント

複数シートに対して操作を行う際に、エラーを避けるためには、以下の点に注意してください。

  • コピーする行の範囲が正しいかどうかを確認する。
  • シートの中で空白の行がある場合でも正しく動作するように、最下行を取得する処理を工夫する。
  • 処理が完了した後に「Application.CutCopyMode = False」を使用してコピー状態を解除する。

まとめ

VBAを使って複数のシートに対して最下行をコピーし、値として貼り付ける方法を紹介しました。この方法を使うことで、手動で行う作業を効率化することができ、特に大量のデータがあるシートに対して非常に有効です。

コメント

タイトルとURLをコピーしました