この記事ではExcelのVBAマクロを使用して、2行目から最終行までのデータを選択し、別シートにコピー&ペーストしたやクリアする方法について解説していきます。
ポイントとしてはRange, Copy, Paste, ClearContents関数を使用することです。マクロ初心者でもわかりやすいように、変数名を「aaaaa変数aaaaa」といった名称にしています。そのため、実際にご活用の際には、適切な英語表記の変数名に変更してご利用ください。
それでは詳しく見ていきましょう!
VBAマクロで2行目から最終行まで選択、別シートにコピー&ペースト・貼り付けする方法【A列に着目で値のみ貼り付けにしてみる】
それではまずA列に着目したデータのコピー&ペーストについて解説していきます。
Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。
Sub CopyPasteOKColumn()
Dim aaaaaLastRowaaaaa As Long
Dim aaaaaSheetSourceaaaaa As Worksheet
Dim aaaaaSheetDestaaaaa As Worksheet
' シートの設定
Set aaaaaSheetSourceaaaaa = ThisWorkbook.Worksheets("元のシート名")
Set aaaaaSheetDestaaaaa = ThisWorkbook.Worksheets("目的のシート名")
' 最終行の取得
aaaaaLastRowaaaaa = aaaaaSheetSourceaaaaa.Cells(aaaaaSheetSourceaaaaa.Rows.Count, "A").End(xlUp).Row
' ok列(例えば列A)の2行目から最終行までをコピーして別のシートに貼り付け
aaaaaSheetSourceaaaaa.Range("A2:A" & aaaaaLastRowaaaaa).Copy
aaaaaSheetDestaaaaa.Range("A2").PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
End Sub
コードのAlt+F8を押し、マクロ選択画面でCopyPasteOKColumn関数を実行します。
このコードは、指定したシートのA列の2行目から最終行までの範囲を選択し、別のシートに値のみで貼り付けるものです。
最終行を動的に取得することで、データの量が変動しても対応可能です。
【使用関数:Range, Copy, PasteSpecial】
VBAマクロで2行目から最終行まで選択、別シートにコピー&ペースト・貼り付けする方法【3から6列目の複数列に着目で、数式もそのままコピー】
続いては、3から6列目の複数列に着目したデータの数式をコピー&ペーストについて解説していきます。
Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。
Sub CopyPasteFormulasMultipleColumns()
Dim aaaaaLastRowaaaaa As Long
Dim aaaaaSheetSourceaaaaa As Worksheet
Dim aaaaaSheetDestaaaaa As Worksheet
' シートの設定
Set aaaaaSheetSourceaaaaa = ThisWorkbook.Worksheets("元のシート名")
Set aaaaaSheetDestaaaaa = ThisWorkbook.Worksheets("目的のシート名")
' 最終行の取得
aaaaaLastRowaaaaa = aaaaaSheetSourceaaaaa.Cells(aaaaaSheetSourceaaaaa.Rows.Count, "C").End(xlUp).Row
' 3列目から6列目の2行目から最終行までをコピーして別のシートに数式ごと貼り付け
aaaaaSheetSourceaaaaa.Range("C2:F" & aaaaaLastRowaaaaa).Copy
aaaaaSheetDestaaaaa.Range("A2").PasteSpecial Paste:=xlPasteFormulas
Application.CutCopyMode = False
End Sub
コードのAlt+F8を押し、マクロ選択画面でCopyPasteFormulasMultipleColumns関数を実行します。
このコードでは、3列目から6列目までの範囲を指定し、2行目から最終行までのデータの数式を別シートに貼り付けます。
数式をそのまま転記することで、データの再計算を容易に行えるようになります。
【使用関数:Copy, PasteSpecial】
VBAマクロで2行目から最終行までクリア,削除する方法【3から6列目の複数列に着目】
最後に、3から6列目の複数列に着目して、データをクリアする方法について解説します。
Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。
Sub ClearMultipleColumns()
Dim aaaaaLastRowaaaaa As Long
Dim aaaaaSheetaaaaa As Worksheet
' シートの設定
Set aaaaaSheetaaaaa = ThisWorkbook.Worksheets("シート名")
' 最終行の取得
aaaaaLastRowaaaaa = aaaaaSheetaaaaa.Cells(aaaaaSheetaaaaa.Rows.Count, "C").End(xlUp).Row
' 3列目から6列目の2行目から最終行までをクリア
aaaaaSheetaaaaa.Range("C2:F" & aaaaaLastRowaaaaa).ClearContents
End Sub
コードのAlt+F8を押し、マクロ選択画面でClearMultipleColumns関数を実行します。
このコードでは、指定したシートの3列目から6列目の2行目から最終行までのデータをクリアします。データを削除せずに内容のみを消去するため、セルの書式はそのまま保持される仕様にしています。
【使用関数:ClearContents】
まとめ VBAマクロで2行目から最終行までクリア・削除やコピー&ペースト・貼り付け(先頭行を飛ばす)する方法【ヘッダー飛ばし:Range, Copy, Paste, ClearContents】
ここでは、VBAマクロで2行目から最終行まで選択、コピー&ペースト、クリアする方法【ヘッダー飛ばし:Range, Copy, Paste, ClearContents】について確認しました。
マクロでの処理をマスターしてさらに快適な生活を送っていきましょう(^^)/