はじめに
Excelで作業をしていると、
「途中に1列追加したい」
「データの区切りとして列を挿入したい」
そんな場面がよくあります。
VBAでは、列を挿入する方法がいくつかあり、
目的に合わせて使い分けることで、コードがより安全で扱いやすくなります。
ここでは、列を挿入する基本のコードと、そのしくみを解説します。
まずはコードを確認
Columns(3).Insert
もっともシンプルな書き方です。
3列目(C列)の位置に、新しい列が1列挿入されます。
コードのしくみを解説
Columns(列番号).Insert で列を挿入する
Columns(3).Insert は、C列の位置に新しい列を追加します。
- 元のC列はD列にずれる
- 挿入された列は空白の状態
複数列をまとめて挿入することもできます。
Columns("C:E").Insert 'C〜E列分のスペースを挿入
Range を使って列を挿入する
Range("C1").EntireColumn.Insert
- セルを基準に列全体を挿入したいときに便利
- EntireColumn は「そのセルが属する列」を指します
シートを指定して挿入する
Worksheets("データ").Columns(3).Insert
複数シートを扱う場合は、シート名を明示すると安全です。
あわせて知っておきたいポイント
挿入した列に値を入れる例
Columns(3).Insert
Range("C1").Value = "区切り"
列を挿入したあとに、見出しや区切りを入れる場面で使います。
複数列をまとめて挿入する
Columns(3).Resize(2).Insert '2列分のスペースを挿入
Resize を使うと柔軟に列数を指定できます。
挿入位置を変数で指定する
Dim c As Long
c = 5
Columns(c).Insert
動的に列を挿入したいときに便利です。
使うときに気をつけたいこと
- 結合セルがあると挿入範囲が広がることがあります
→ 必要に応じて結合を解除してから挿入します。
- 大量の列を挿入すると処理が重くなることがあります
→ ScreenUpdating を使うと改善します。
- 挿入位置を間違えるとデータがずれる
→ 列番号の指定は慎重に。
まとめ
- Columns(番号).Insert で列を挿入できる
- EntireColumn を使うとセル基準で列全体を挿入できる
- 複数列挿入や変数指定など、実務で便利な書き方も多い
- 列のずれを防ぐために、挿入位置の指定は慎重に
- 列の挿入を自動化できると、データ整理やレイアウト調整がぐっとスムーズになります。

列を挿入する処理は、表の見やすさや整理に直結する大切な機能です。
基本の書き方を押さえておくと、実務での作業がとても楽になります。

新しい列が入ると、表がすこし広がって気持ちいいね。
VBAは、そんな小さな整えごとも手伝ってくれるんだ。

コメント