Excel

【Excel】VBAマクロで2行目から最終行まで選択、コピー&ペースト、クリアする方法【ヘッダー飛ばし:Range, Copy, Paste, ClearContents】

当サイトでは記事内に広告を含みます。

この記事では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】について確認しました。

マクロでの処理をマスターしてさらに快適な生活を送っていきましょう(^^)/