Excel

【Excel】VBAマクロで全選択しコピー貼り付け(データがある範囲、シート全体など)【Range, Copy, Paste, Select】

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

この記事では、ExcelのVBAマクロを使用して、特定のデータ範囲またはシート全体を全選択し、別のシートにコピー&貼り付けする方法について解説していきます。

ポイントとしては、`Range`, `Copy`, `Paste`, `Select`関数の使用があります。マクロ初心者でも理解しやすいように、変数名をaaaaa変数aaaaaといった名称にしています。

自身で活用する際には、これらの変数名を英語表記で適切なものに変更して使用してください。

それでは詳しく見ていきましょう!

VBAマクロで全選択しコピー貼り付け(データがある範囲の全体を自動で検出コピーし、betsuシートに貼り付け)する方法【CopyRange】

それではまず、データがある範囲の全体を自動で検出してコピーし、別のシート(betsuシート)に貼り付ける方法について解説していきます。


Sub CopyRange()
    Dim aaaaaWsSourceaaaaa As Worksheet
    Set aaaaaWsSourceaaaaa = ThisWorkbook.Worksheets("Source")

    Dim aaaaaWsDestaaaaa As Worksheet
    Set aaaaaWsDestaaaaa = ThisWorkbook.Worksheets("betsu")

    Dim aaaaaLastRowaaaaa As Long
    Dim aaaaaLastColaaaaa As Long
    aaaaaLastRowaaaaa = aaaaaWsSourceaaaaa.Cells(aaaaaWsSourceaaaaa.Rows.Count, "A").End(xlUp).Row
    aaaaaLastColaaaaa = aaaaaWsSourceaaaaa.Cells(1, aaaaaWsSourceaaaaa.Columns.Count).End(xlToLeft).Column

    Dim aaaaaRangeToCopyaaaaa As Range
    Set aaaaaRangeToCopyaaaaa = aaaaaWsSourceaaaaa.Range("A1", aaaaaWsSourceaaaaa.Cells(aaaaaLastRowaaaaa, aaaaaLastColaaaaa))

    aaaaaRangeToCopyaaaaa.Copy Destination:=aaaaaWsDestaaaaa.Range("A1")
End Sub

Alt + F11にてVBE画面を開いて、以下のコードをコピペしましょう。

コードのAlt+F8を押し、マクロ選択画面でCopyRange関数を実行します。

このマクロでは、ソースシートから最後の行と列を検出し、その範囲を別のシートにコピーします。

特に、`Range`オブジェクトを使用して選択範囲を指定し、`Copy`メソッドでその内容を`Destination`プロパティを使用して別のシートの指定位置に貼り付けています。

VBAマクロで全選択しコピー貼り付け(シート全体をコピーし、betsuシートに貼り付け)する方法【CopySheet】

続いては、シート全体をコピーし、betsuシートに貼り付ける方法について解説していきます。


Sub CopySheet()
    Dim aaaaaWsSourceaaaaa As Worksheet
    Set aaaaaWsSourceaaaaa = ThisWorkbook.Worksheets("Source")

    aaaaaWsSourceaaaaa.Copy After:=ThisWorkbook.Worksheets("betsu")
End Sub

Alt + F11にてVBE画面を開いて、以下のコードをコピペしましょう。

コードのAlt+F8を押し、マクロ選択画面でCopySheet関数を実行します。このマクロは、

`Copy`メソッドを使用してシート全体をコピーし、`After`プロパティを用いて特定のシートの後に新しいシートを挿入します。

これにより、元のシートの完全なコピーが新しい位置に作成されます。