更新日:、 作成日:
VBA 列を挿入する
はじめに
Excel VBA マクロの列を挿入する方法を紹介します。
Columns(2).Insert または Range("B1").EntireColumn.Insert メソッドから、列「B」に挿入できます。
先に Copy メソッドから列をコピーすると、コピーした列を挿入できます。
列を挿入する
Columns の引数に列番号または列名を指定すると、その列に挿入できます。
列「A」に挿入するには Columns(1).Insert または Columns("A").Insert を入力します。
Columns(1).Insert ' A 列に挿入
Columns("A").Insert ' A 列に挿入
' Columns(3).Insert ' C 列に挿入
Range の引数にセル名を指定すると、そのセルを取得できます。EntireColumn からその列を取得できます。
セル「B2」の列に挿入するには Range("B2").EntireColumn.Insert を入力します。
Range("B2").EntireColumn.Insert
コピーした列を挿入
コピーした列を挿入するには、先に Copy メソッドから列をコピーします。それから挿入します。
Columns(1).Copy ' A 列をコピー
Range("A1").EntireColumn.Copy ' A 列をコピー
Columns(2).Insert ' B 列に挿入
Application.CutCopyMode = False ' コピーモードを解除
Application.CutCopyMode に False を設定しているのは、Copy メソッドを実行すると、そのセルがコピーモードになるためです。これを解除しています。
スポンサーリンク
複数列を挿入する
列の範囲「B ~ C」に挿入するには Range("B:C").Insert または Range("B:B", "C:C").Insert を入力します。
' B ~ C 列に挿入
Range("B:C").Insert
Range("B:B", "C:C").Insert
Range(Columns(2), Columns(3)).Insert
Range("B1:C1").EntireColumn.Insert
コピーした列を挿入
Range("A:B").Copy ' A ~ B 列をコピー
Range("C:C").Insert
' A → C 列に挿入
' B → D 列に挿入
Range("A:A").Copy ' A 列をコピー
Range("C:D").Insert
' A → C 列に挿入
' A → C 列に挿入
Application.CutCopyMode = False ' コピーモードを解除
別シートの列に挿入する
シートを指定するには Worksheets の引数にシート名またはインデックスを指定します。
Sheet1 を指定するには Worksheets("Sheet1") または Worksheets(1) を入力します。
' Sheet1 の列に挿入
Worksheets("Sheet1").Columns(1).Insert
Worksheets(1).Columns(1).Insert
' Sheet2 の列に挿入
Worksheets("Sheet2").Columns(1).Insert
Worksheets(2).Columns(1).Insert
Sheet1 に Columns を入力すると、自身のシートの列になります。自身を表す Me. が省略されています。
' どちらも同じコード
Dim r As Range
Set r = Columns(1)
Set r = Me.Columns(1)
標準モジュールに Columns を入力すると、開いているシートの列になります。アクティブシートを表す ActiveSheet. が省略されています。
' どちらも同じコード
Dim r As Range
Set r = Columns(1)
Set r = ActiveSheet.Columns(1)
スポンサーリンク