Excel VBA(マクロ)で行・列を挿入する方法/Insertメソッドの使い方

child IT

Insertメソッドを使った行・列の挿入方法です。
要するに何かしらの動線で行や列を選択し、Insertをくっつければ選択した分の幅の行/列が挿入されます。

スポンサーリンク

行を挿入

行を挿入する場合、Rows(1).Insertと指定すれば、
アクティブシートの1行目の上に行が挿入されます。
2行目の上ならRows(2).Insertです。
またはRange(Rows(1), Rows(1)).Insertとか、Range("A1").EntireRow.Insertとかで「Rangeの所属する行」にInsertをかけても同じ意味になります。

複数行を挿入

たとえば2~3行目に挿入なら、Rows("2:3").Insertとすれば挿入できます。
Rangeは開始列と終了列を,で区切っても範囲指定できるので、Range(Rows(1), Rows(3)).InsertとしてもOKです。この場合1~3行目に挿入されます。

列を挿入

列を挿入する場合、Columns(1).InsertまたはColumns("A").Insertと指定すれば、
アクティブシートの1列目(A列)の左に列が挿入されます。
Range(Columns(1), Columns(1)).Insertや、Range("A1").EntireColumn.Insertでも同じ意味になります。

複数列を挿入

たとえばB~C列に挿入なら、Columns("B:C").Insertとすれば挿入できます。
Range(Columns(1), Columns(3)).InsertとしてもOKです。この場合A~C列に挿入されます。

コピーした行の挿入

1行目をコピーして3行目の上に挿入する場合、以下のコードのようになります。
' vba
Rows(1).Copy
Rows(3).Select
Selection.Insert
複数行をコピーする場合も、選択する行を複数にするだけで、あとは同じ要領です。
' vba
Rows("1:3").Copy
Rows(5).Select
Selection.Insert

コピーした列の挿入

列の場合も同様。1列目をコピーして3列目の左に挿入する場合、以下のコードのようになります。
' vba
Columns(1).Copy
Columns(3).Select
Selection.Insert
複数列をコピーする場合、選択する列を複数にします。
' vba
Rows("1:3").Copy
Rows(5).Select
Selection.Insert

他のシートに行列を挿入

' vba
Worksheets("Sheet1").Rows(1).Insert
他のシートに挿入したい場合、SheetsまたはWorksheetsを頭に付ければOKです。
' vba
Sheets(1).Columns(1).Insert
シートはインデックスでも指定できます。

関連記事

Excel(エクセル):行、列
Excelの行、列関係操作、関数、VBAです。他のまとめとかぶる部分が多い場合はリンク貼ります。 行・列の選択 行・列の選択方法です。 テーブル内の行・列一括選択方法です。 VBA(マクロ)で列・...
関数・演算子・メソッド・プロパティ名から探すExcel/VBA(マクロ)使い方・組み合わせ方まとめ
こちらはExcelやメソッドの諸機能を、機能の名称から探せるまとめ記事です。
やりたいことから方法を探すエクセル(Excel)操作・関数・VBA(マクロ)逆引きまとめ
逆引き(やりたいことから探す)Excel記事まとめ

コメント

モバイルバージョンを終了