今回は行をコピー・挿入する方法を備忘録も兼ねて紹介したいと思います。
行をコピー・挿入する方法
行をコピー・挿入するには、Copy
とInsert
を使用します。
Copy
で指定した行をコピーし、Insert
で指定した位置に挿入する感じです。
Rows(...).Copy
Range("...").Insert
コードの紹介
それではコードを紹介します。
なお説明するにあたり、分かりやすいように以下のようなシートを使用します。
1,2,3行目にそれぞれ背景色が設定されています。
![コードの紹介_1](https://masashi-blog418.com/wp-content/uploads/2024/01/image-1-1024x180.png)
Sub test_CopyAndPaste_TargetRows()
Rows(1).Copy
Rows(3).Insert
End Sub
実行すると、一行目(赤)をコピーし、3行目(黄)に挿入されます。
![コードの紹介_2](https://masashi-blog418.com/wp-content/uploads/2024/01/image-2-1024x164.png)
実際に見てみると分かると思いますが、3行目(黄)が一行下に移動する感じです。
右クリックした時に出てくる「コピーしたセルの挿入」と同じような動作になります。
![コードの紹介_3](https://masashi-blog418.com/wp-content/uploads/2024/01/image-3.png)
複数行にコピー・挿入したい場合
複数行にコピー・挿入する時はRows(...)
ではなくRange(...)
を使用します。
指定する時はRange("【コピー開始行番号】:【コピー終了行番号】")
のように指定します。
Rows(1).Copy
'RowsではなくRangeを使用する
Range("3:5").Insert
実行すると1行目をコピーし、3~5行目に行が挿入されます。
![複数行にコピー・挿入したい場合_1](https://masashi-blog418.com/wp-content/uploads/2024/01/image-4-1024x291.png)
逆に複数行をコピーしたいときもRange(...)
を使えば実現可能です。
'1~3行目をコピーする
Range("1:3").Copy
Range("4:6").Insert
以下のように1~3行が4~6行目に挿入されているのが分かります。
![複数行にコピー・挿入したい場合_2](https://masashi-blog418.com/wp-content/uploads/2024/01/image-5-1024x309.png)
ちなみに余談ですが、複数行をコピーした後にInsert
する際、Range
で指定してもRows
で指定しても同じように挿入されるようです。一応覚えておきましょう。
'どちらも同じ処理になる
Range("1:3").Copy
Rows(4).Insert
Range("1:3").Copy
Range("4:6").Insert
まとめ
今回は行をコピー・挿入する方法を紹介しました。
1行だけコピー・挿入する時はRows(...)
、複数行をコピー・挿入する時はRange(...)
を使用するようにしましょう!
このブログではVBAに関する記事を不定期で投稿していますので、是非ご覧ください!
コメント