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