列を挿入する
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
実行結果
以上で、列を挿入する 削除するについての解説を終了します。
ありがとうございました。