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
【実行結果】
(下の画像のようになります)
プログラム実行後の画像

関連リンク

ページの先頭へ