サイトについて      連絡先   検索

VBA 列を挿入する

はじめに

Excel VBA マクロの列を挿入する方法を紹介します。

Columns.Insert メソッドまたは Range.Insert メソッドで列を挿入できます。

  • 目次
    • 列を挿入する
    • 列の範囲に挿入する
    • 指定したシートの列に挿入する

列を挿入する

Columns の引数に列番号または列名を指定すると、その列に挿入できます。

列「A」に挿入するにはColumns(1).InsertまたはColumns("A").Insertを入力します。


Columns(1).Insert   ' A 列に挿入
Columns("A").Insert ' A 列に挿入
Columns(3).Insert   ' C 列に挿入
1

Range の引数にセル名を指定すると、そのセルを取得できます。EntireColumn からその列を取得できます。

セル「B2」の列に挿入するにはRange("B2").EntireColumn.Insertを入力します。


Range("B2").EntireColumn.Insert

列の範囲に挿入する

列の範囲「B ~ C」に挿入するにはRange("B:C").InsertまたはRange(Columns(2), Columns(3)).Insertを入力します。


Range("B:C").Insert                  ' B ~ C 列に挿入
Range(Columns(2), Columns(3)).Insert ' B ~ C 列に挿入
Range("D:D").Insert                  ' D 列に挿入
2

指定したシートの列に挿入する

シートを指定するには Worksheets の引数にシート名またはインデックスを指定します。

Sheet1 を指定するにはWorksheets("Sheet1")またはWorksheets(1)を入力します。

sheet1

' 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)
  • 目次
    • 列を挿入する
    • 列の範囲に挿入する
    • 指定したシートの列に挿入する