【ExcelVBA入門】列を挿入するためのInsertメソッドの使い方とは

こんにちは、フリーランスエンジニア兼ライターのワキザカ サンシロウです。

皆さんは、VBAで列の挿入をする方法を知っていますか?

データの追加をする際に、列を挿入するケースはよくありますよね。

そこで今回は、

・列を挿入する方法

といった基礎的なことから、

・セル範囲を指定して列を挿入する方法

・複数列を指定して列を挿入する方法

・合わせて覚えると便利な列のコピー・削除方法

といった応用的な方法まで、徹底的に解説します!

列を挿入するためのInsertメソッドの使い方とは

はじめに、列を挿入する方法について簡単に解説します。

VBAで列を挿入する場合は、Insertメソッドを使って以下のように書いて使います。

使い方:

Columns(列番号).Insert                     '列番号を指定する場合
Range(セル名).EntireColumn.Insert  'セル名を指定する場合

「Columns(列番号).Insert」は列番号に入れた列に直接挿入します。

「Range(セル名).EntireColumn.Insert」は「Range(セル名).EntireColumn」で指定したセルの列数を取得してから、挿入します。

また、次のようにオプションを後ろに付けて挿入することもできます。

オプションを付けた場合:

Columns(列番号).Insert shift:=xlShiftToRight 

shiftオプションは挿入後に移動するセルの移動方法を指定することができ、「xlShiftDown」で下に移動、「xlShiftToRight」で右に移動することができます。

このように、簡単に列を挿入することができます。

サンプルコード

次に、サンプルコードをもとに、具体的な使い方を解説します。

列を指定して1列挿入

はじめに、1列挿入する方法について解説します。

実行前:

サンプルコード1:

Sub Test1()
  Columns(3).Insert
End Sub

サンプルコード2:

Sub Test1()
  Range("C1").EntireColumn.Insert  
End Sub

実行後:

サンプルコード1、2はどちらも同じ意味なので、直接列番号を指定する場合、セル名指定で指定する場合など用途に応じて使い分ければOKです。

セル範囲を指定して1列挿入

次に、セル範囲を指定して挿入する方法について解説します。

実行前:

サンプルコード:

Sub Test3()
  Range("C1:C9").Insert
End Sub

実行後:

サンプルでは、C1~C9セルに列を挿入しています。

「Range("C1:C9")」のセル範囲を変更すれば、指定範囲で挿入することができます。

列全体ではなく範囲を指定して挿入する場合は、この方法を使えばOKですね。

複数列挿入

次に、複数列を一括で挿入する方法について解説します。

実行前:

サンプルコード:

Sub Test4()
  Range("B:C").Insert
End Sub

実行後:

サンプルでは、B列目~C列目に列を挿入しています。

「Range("B:C")」の列番号の範囲を変更すれば、指定した列数分挿入することができます。

複数列を挿入する場合は、この方法を使えばOKですね。

変数を使った挿入

次に、変数を使った列の挿入方法について解説します。

実行前:

サンプルコード1:

Sub Test5()
  Dim intColumn As Integer
  intColumn = 2
  
  Columns(intColumn).Insert
End Sub

サンプルコード2:

Sub Test6()
  Dim intColumn As Integer
  Dim cel1 As String
  cel1 = "B1"
  
  Range(cel1).EntireColumn.Insert
End Sub

実列結果:

どちらも2列目に列を挿入する処理ですが、このように変数を使えばより実用的な使い方ができるのでおすすめです!

選択している列のすぐ右に挿入

次に、選択している列のすぐ右に挿入する方法について解説します。

実行前:

サンプルコード:

Sub Test8()
  Columns(ActiveCell.Column + 1).Insert
End Sub

実行後:

選択している列は「ActiveCell.Column」で取得することができるので、「ActiveCell.Column + 1」で選択している列の下の列に挿入しています。

行を挿入する方法とは

ここまで列を挿入する方法を解説してきましたが、同じような方法で行も簡単に挿入することができます。

実行前:

サンプルコード1:

Sub Tes9()
  Rows(2).Insert
End Sub

サンプルコード2:

Sub Test10()
  Range("A2").EntireRow.Insert
End Sub

実行後:

行番号を指定する場合はColumnsの部分をRowsに変更し、セル名で挿入する場合も「EntireColumn」を「EntireRow」にするだけなので、覚えやすいですね。

このように、行も簡単に挿入することができます。

補足:合わせて覚えると便利な列コピー・削除方法

最後に、列の挿入とあわせて覚えておくと便利な列コピー、削除方法について解説します。

列をコピーする場合は、Copyメソッドを使って次のように書きます。

実行前:

列コピーサンプルコード:

Sub Test11()
  Columns(2).Copy Destination:=Columns(4)
End Sub

実行後:

列を削除する場合は、Deleteメソッドを使って次のように書きます。

実行前:

列削除サンプルコード:

Sub Test12()
  Columns(4).Delete
End Sub

実行後:

コピー、削除どちらも簡単にできるので合わせて覚えておくのがおすすめです!

以下で詳しく解説しているので、さらに知りたい方は見てみてくださいね!

【ExcelVBA入門】列をコピーするためのCopyメソッドの使い方とは
更新日 : 2018年9月5日
【VBA入門】行・列の削除とクリアをする方法
更新日 : 2019年4月25日

まとめ

今回は、VBAで列を挿入する方法について徹底的に解説しました。

Excelで列の操作をするケースは多いので、列挿入、コピー、削除まで覚えておくのがおすすめです!

どれも使い方は簡単なので、ぜひ使ってみてくださいね!

LINEで送る
Pocket

「プログラミング、右も左もわからない…」という方にオススメ

当プログラミングスクール「侍エンジニア塾」では、これまで6000人以上のエンジニアを輩出してきました。

その経験を通してプログラミング学習に成功する人は、「目的目標が明確でそれに合わせた学習プランがあること」「常に相談できる人がそばにいること」「自己解決能力が身につくこと」この3つが根付いている傾向を発見しました。

侍エンジニア塾は上記3つの成功ポイントを満たすようなサービス設計に磨きをかけております。

cta_under_bnr

「自分のスタイルや目的に合わせて学習を進めたいな」とお考えの方は、ぜひチェックしてみてください。

書いた人

Sanshiro Wakizaka

Sanshiro Wakizaka

新卒入社したメーカー系のIT企業で、システムエンジニアとして約5年勤務。
Webアプリ、業務アプリ開発において、要件定義、設計、インフラ、製造、テスト、運用保守など、様々な経験あり。
また、侍ブログ編集部として、これまでに200記事以上の記事を執筆。
現在はフリーランスエンジニア兼テックライターとして活動中。

おすすめコンテンツ

いまならレッスン期間が2週間延長!この秋、プログラミングを学ぼう

転職成功で受講料0円!あなたもプログラミングを学んでエンジニアデビュー