今回は、Excel VBAで対象範囲をコピーして貼り付ける方法についてです。
これを実行するVBAコードについて、解説していきます。
本記事のポイントおよびキーワード
✔ 使えると結構便利!
✔ 使用するメソッドなどは以下
・Rangeオブジェクト
・Copyメソッド
・Withステートメント
概要
具体的なExcelのイメージを示すと、↓のような感じです。
AB列に入っている文字を全部コピーして、CD列に張り付けるという動作を実行させます。
VBAコードの流れ
処理を実行するVBAコードの流れは、以下の3ステップです。
2.A1セルからB列の最終行までの範囲をコピー
3.C1から貼り付け
全体のコード
実際の全体コードはこちらです。
Sub 対象領域をコピーして貼り付ける()
Dim lastrow As Integer
With Worksheets("Sheet1")
lastrow = .Cells(Rows.Count, 1).End(xlUp).Row
.Range(Cells(1, 1), Cells(lastrow, 2)).Copy
.Cells(1, 3).PasteSpecial Paste:=xlPasteValues
End With
Application.CutCopyMode = False
End Sub
コードの解説
では、コード内容を説明します。
最終行を取得
最初に、入力されている最終行の行番号取得をします。
lastrow = .Cells(Rows.Count, 1).End(xlUp).Row
なお、今回のコードでは、Withステートメントを使用しました。
~においてという意味を示します。下記の場合、Worksheets(“Sheet1”)においてという意味になります。
これによって、「.Range~」などのように、Worksheets(“Sheet1”)を省略して、.(ピリオド)から書き始めることができます。
End With
対象範囲をコピーして貼り付ける
最終行取得が取得できたら、対象範囲をコピーして貼り付けます。
対象範囲は、.Range(Cells(1, 1), Cells(lastrow, 2))です。結果的にA1からB列の最終行までになります。
これをCopyメソッドでコピーしています。
そして、PasteSpecialメソッドを使用してC1セルを示すCells(1, 3)への貼り付けています。
Paste:=xlPasteValuesは、値貼り付けであることを意味しています。書式は不要なので、値のみを貼り付けています。
解説は以上ですので、もう一度全体コードを示します。
Sub 対象領域をコピーして貼り付ける()
Dim lastrow As Integer
With Worksheets("Sheet1")
lastrow = .Cells(Rows.Count, 1).End(xlUp).Row
.Range(Cells(1, 1), Cells(lastrow, 2)).Copy
.Cells(1, 3).PasteSpecial Paste:=xlPasteValues
End With
Application.CutCopyMode = False
End Sub
まとめ
今回は、「対象範囲をコピーして貼り付ける」VBAコードについて、解説しました。
対象範囲をコピーして貼り付ける操作は、Excelを使用していると頻繁に出てくる操作かと思います。これを自動化できると、効率も上がりますね。
最後までお読みいただき、ありがとうございました。
コメント