VBA 行と列のコピー/貼り付け
In this Article
このチュートリアルでは、VBAを使用して行または列全体をコピー(または切り取り)する方法について説明します。セルの範囲のコピーと貼り付けについては、別の記事で説明します。
まず、コピーした行や列を貼り付けたり、挿入したりする方法を紹介し、その違いについて説明します。 次に、コピーや切り取りを行う際に、行や列を参照するさまざまな方法をすべて紹介します。
行と列 − 貼り付けと挿入の比較
行や列を貼り付ける場合、2つの選択肢があります。 既存の行(または列)の上に貼り付ける方法と、新しい行(または列)を挿入する方法です。
その違いを見てみましょう。
既存の行/列の上にコピー&ペーストする
これは、1行目をコピーし、既存の5行目にペーストします。
Range("1:1").Copy Range("5:5")
これは、C列をコピーし、E列にペーストします。
Range("C:C").Copy Range("E:E")
行/列をコピーして挿入する
上書きする代わりに、コピーした行や列を挿入し、既存の行や列をずらしてスペースを確保することもできます。
これは、1行目をコピーして5行目に挿入し、既存の行を下にずらします。
Range("1:1").Copy
Range("5:5").Insert
これは、C列をコピーしてE列に挿入し、既存の列を右にシフトします。
Range("C:C").Copy
Range("E:E").Insert
行全体をコピーする
以下では、1行目をコピーして5行目にペーストする方法をいくつかご紹介します。
Range("1:1").Copy Range("5:5")
Range("A1").EntireRow.Copy Range("A5")
Rows(1).Copy Rows(5)
行をカット&ペーストする
行をカット&ペーストするには、「コピー」の代わりに「カット」を使用するだけです。
Rows(1).Cut Rows(5)
複数行をコピーする
以下は、複数行を一度にコピーする例です。
Range("5:7").Copy Range("10:13")
Range("A5:A7").EntireRow.Copy Range("A10:A13")
Rows(5:7).Copy Rows(10:13)
列全体をコピーする
行全体のコピーと同様に、列全体をコピーすることができます。
Range("C:C").Copy Range("E:E")
Range("C1").EntireColumn.Copy Range("C1").EntireColumn
Columns(3).Copy Range(5)
列をカット&ペーストする
列をカット&ペーストするには、「コピー」の代わりに「カット」を使用するだけです。
Range("C:C").Cut Range("E:E")
複数の列をコピーする
以下は、複数の列を一度にコピーする例です。
Range("C:E").Copy Range("G:I")
Range("C1:E1").EntireColumn.Copy Range("G1:I1")
Columns(3:5).Copy Columns(7:9)
行や列を別のシートにコピーする
別のシートにコピーするには、単にシートオブジェクトを使用します。
Sheets("sheet1").Range("C:E").Copy Sheets("sheet2").Range("G:I")
行や列を別のシートに切り出す
行や列をカットして別のシートに貼り付ける場合も、まったく同じ手法が使えます。
Sheets("sheet1").Range("C:E").Cut Sheets("sheet2").Range("G:I")