構文
Object.Insert(Shift, CopyOrigin)
定数
| 引数 | 説明 | 引数を省略した場合 |
| Object | 対象となるオブジェクトを指定 ・Range オブジェクト | 省略不可 |
| Shift | xlShiftDown→挿入後下に移動 | 挿入する内容によって自動判別 |
| xlShiftToRight→挿入後右に移動 | ||
| CopyOrigin | xlFormatFromLeftOrAbove →左または上と同じ書式を適用 | 挿入する内容によって自動判別 |
| xlFormatFromRightOrBelow→右または下と同じ書式を適用 |
コードサンプル
Public Sub sample_Insert_method()
'■2行目に行挿入(行追加)
Rows(2).Insert
'■3列目(C列)に列挿入(列追加)
Columns(3).Insert
'■5行目から8行目まで複数行を挿入
Rows("5:8").Insert
'■B列からC列目まで複数列を挿入
Columns("B:C").Insert
'■ズレます■1行目、3行目~5行目まで複数行を挿入
Range("1:1,3:5").Insert '実際には1行目が追加、4~6行目が追加となる
'■ズレます■A列、C列~E列まで複数列を挿入
Range("A:A,C:E").Insert '実際にはA列が追加、D~F列目が追加となる
'■オプションはセル追加の場合に使用するケースが多いです。
'■セルを追加挿入後、元のセルは右へ移動、右の書式を利用
Range("A1:C3").Insert Shift:=xlShiftToRight, CopyOrigin:=xlFormatFromRightOrBelow
'■セルを追加挿入後、元のセルは下へ移動、上の書式を利用
Range("A1:C3").Insert Shift:=xlShiftDown, CopyOrigin:=xlFormatFromLeftOrAbove
End Sub
注意
・引数Shiftを省略した場合、挿入後の移動方向は自動的に決まります。
| 対象 | 挿入後の方向 |
| 列 | 右方向 |
| 行 | 下方向 |
| セル範囲(縦長) | 右方向 |
| セル範囲(横長) | 下方向 |
| セル範囲(正方形) | 下方向 |
セル範囲の場合は形によって変わりますので、省略しない方が望ましいです。
関連記事
一行おきに空白行を挿入する【ExcelVBA】
ループ中に条件を満たす行の行削除を行う【ExcelVBA】
ループ中に条件を満たす列の列削除を行う【ExcelVBA】



コメント