【Excel VBA】行をコピー・挿入する方法を紹介【備忘録】

Excel
スポンサーリンク

今回は行をコピー・挿入する方法を備忘録も兼ねて紹介したいと思います。

スポンサーリンク

行をコピー・挿入する方法

行をコピー・挿入するには、CopyInsertを使用します。

Copyで指定した行をコピーし、Insertで指定した位置に挿入する感じです。

Rows(...).Copy

Range("...").Insert
スポンサーリンク

コードの紹介

それではコードを紹介します。

なお説明するにあたり、分かりやすいように以下のようなシートを使用します。
1,2,3行目にそれぞれ背景色が設定されています。

コードの紹介_1
Sub test_CopyAndPaste_TargetRows()
    Rows(1).Copy
    Rows(3).Insert
End Sub

実行すると、一行目(赤)をコピーし、3行目(黄)に挿入されます。

コードの紹介_2

実際に見てみると分かると思いますが、3行目(黄)が一行下に移動する感じです。
右クリックした時に出てくる「コピーしたセルの挿入」と同じような動作になります。

コードの紹介_3
スポンサーリンク

複数行にコピー・挿入したい場合

複数行にコピー・挿入する時はRows(...)ではなくRange(...)を使用します。
指定する時はRange("【コピー開始行番号】:【コピー終了行番号】")のように指定します。

Rows(1).Copy
'RowsではなくRangeを使用する
Range("3:5").Insert

実行すると1行目をコピーし、3~5行目に行が挿入されます。

複数行にコピー・挿入したい場合_1

逆に複数行をコピーしたいときもRange(...)を使えば実現可能です。

'1~3行目をコピーする
Range("1:3").Copy
Range("4:6").Insert

以下のように1~3行が4~6行目に挿入されているのが分かります。

複数行にコピー・挿入したい場合_2

ちなみに余談ですが、複数行をコピーした後にInsertする際、Rangeで指定してもRowsで指定しても同じように挿入されるようです。一応覚えておきましょう。

'どちらも同じ処理になる

Range("1:3").Copy
Rows(4).Insert

Range("1:3").Copy
Range("4:6").Insert

まとめ

今回は行をコピー・挿入する方法を紹介しました。

1行だけコピー・挿入する時はRows(...)、複数行をコピー・挿入する時はRange(...)を使用するようにしましょう!

このブログではVBAに関する記事を不定期で投稿していますので、是非ご覧ください!

タイトルとURLをコピーしました