VBAで列を挿入する方法(1列挿入・複数列挿入)
今回の目標
この記事では、一列のみ挿入する方法や、複数列を挿入する方法を解説します。
目標リスト
- 一列を挿入できるようになる
- 複数列を挿入できるようになる
Insert メソッドについて
Columns.Insert メソッドとは
Columns.Insert メソッドは、列を挿入します。
Columns プロパティで挿入する列を指定し、その列に対して挿入(Insert メソッド)を実行します。
例えば、「Columns("B").Insert」で、B列に1列を挿入します。
「Columns("B:D").Insert」で、B列に3列(B列、C列、D列の3列)を挿入します。
Columns.Insert メソッドの構文
C列に1列を挿入する処理です。
Columns("C").Insert
D列に3列(D列、E列、F列の3列)を挿入する処理です。
Columns("D:F").Insert
【別解】Range.Insertメソッドで列を挿入する
Rangeオブジェクトでも列を挿入することが出来ます。
下のプログラムは、C列に1列、挿入します。
Range("C:C").Insert
D列に、D~F列分の3列を挿入する処理です。
Range("D:F").Insert
一列を挿入する
Columns の引数に、何列目に列を挿入するかを指定します。
サンプルコード
Sub InsertColumns1()
'B列に列を挿入する
Columns("B").Insert
End Sub
(下の画像のようになります)
複数列を挿入する
Columns の Insert メソッドを使って複数列挿入します。
Columns("開始列:終了列")の形式で指定します。
例えば、Columns("B:C").Insert では、B列の位置にB~C列分の2列挿入され、元のB~C列は右にずれます。
サンプルコード
Sub InsertColumns2()
'B列に2列(B~C列)を挿入する
Columns("B:C").Insert
End Sub
(下の画像のようになります)
セルが含まれる列へ、列を挿入する
Range オブジェクトの EntireColumn プロパティを経由してから Insert メソッドを実行することで、「そのセルを含む列全体」に対して列の挿入を行えます。 例えば「Range("C1:D2").EntireColumn.Insert」はセルC1~D2を含む C列とD列の2列を対象にして、その位置に2列挿入します(元の C列、D列は右にずれます)。
サンプルコード
Sub InsertColumns3()
'セルC1~D2を含む列に2列(=C,D列)分を挿入する
Range("C1:D2").EntireColumn.Insert
End Sub
(下の画像のようになります)
