Excel VBA 列を挿入する 削除する

スポンサーリンク

列を挿入する

VBAで列を挿入する場合はセルを表すRange【レンジ】オブジェクトのInsert【インサート】メソッドを使用します。Insert【インサート】メソッドは指定したセル範囲にセルを挿入するメソッドです。列を挿入する場合は挿入する場所にあるセルの移動方向を設定する引数Shift【シフト】に右方向にシフトする定数を指定します。また、Columns【カラムスス】プロパティやEntireColumn【エンタイヤカラム】プロパティを使用して指定の列全体を参照し、Insert【インサート】メソッドを使用すると列全体が挿入されます。

Insert【インサート】メソッド

Insert【インサート】メソッドの書式と設定値(引数)の説明

[]内は省略可能です。
オブジェクト.Insert[(Shift,CopyOrigin)]

  • オブジェクト
    列を表すプロパティで参照した行やセル範囲をRange【レンジ】オブジェクトを指定します。
  • Shift【シフト】(省略可)
    セルを挿入後に元の位置にあったセルを移動する方向をXlInsertShiftDirection列挙型の定数を使用して指定します。省略した場合は、Excelが自動的に移動します。

    XlInsertShiftDirection列挙型
    定数 内容
    xlShiftDown 下方向にシフトします。
    xlShiftToRight 右方向にシフトします。
  • CopyOrigin【コピーオリジン】(省略可)
    挿入後のセルに隣接する、どのセルの書式を適用するかをXlInsertFormatOrigin列挙型の定数を使用して指定します。
    省略した場合は、Excelが自動的に書式を適用します。

    XlInsertFormatOrigin列挙型
    定数 内容
    xlFormatFromLeftOrAbove 隣接した左または上のセルの書式を適用します。
    xlFormatFromRightOrBelow 隣接した右または下のセルの書式を適用します。

A5セルからC5セルの上に行を挿入するコード例

Sub 列挿入()
Range("A1:A4").Insert
End Sub

実行結果

引数CopyOrigin【コピーオリジン】を指定して右の行の書式を適用するコード例

Sub 列挿入2()
Range("A1:A4").Insert CopyOrigin:=xlFormatFromRightOrBelow
End Sub

実行結果

Columns【カラムス】プロパティで1列目の前に列を挿入するコード例

Sub 列挿入3()
Columns(1).Insert
End Sub

実行結果

全体列を表すEntireColumn【エンタイヤカラム】プロパティでA1とB1セルが含まれる全体列の前に2列を挿入するコード例

Sub 行挿入4()
Range("A1:B1").EntireColumn.Insert
End Sub

実行結果

列を削除する

列を削除するには、Range【レンジ】オブジェクトのDelete【デリイト】メソッドを使用します。

Delete【デリイト】メソッド

Delete【デリイト】メソッドの書式と設定値(引数)の説明

[]内は省略可能です。
オブジェクト.Delete[(Shift)]

  • オブジェクト
    列を表すプロパティで参照したRange【レンジ】オブジェクトを指定します。
  • Shift【シフト】(省略可)
    列を削除後にセルを移動する方向をXlDeleteShiftDirection列挙型の定数を使用して指定します。省略した場合は、Excelが自動的に移動します。

    XlDeleteShiftDirection列挙型
    定数 内容
    xlShiftToLeft 左方向にシフトします。
    xlShiftUp 上方向にシフトします。

A1~A4セルを削除するコード例

Sub 列削除()
Range("A1:A4").Delete 
End Sub

実行結果

1列目の全体列を削除するコード例

Sub 列削除2()
Columns(1).Delete
End Sub

実行結果

A1セルとB1セルが含まれる全体列を削除するコード例

Sub 行削除3()
Range("A1:B1").EntireColumn.Delete
End Sub

実行結果


以上で、列を挿入する 削除するについての解説を終了します。
ありがとうございました。

スポンサーリンク

関連記事・広告