基本概要
Delete
はRange
オブジェクトのメソッド。
- 対象のセル・行・列をワークシートから削除し、削除した部分を詰める。
- 削除後、セルの右または下にあるデータが前にシフトする。
Deleteの動作
操作対象 | 動作例 |
---|
単一セルのDelete | セルを削除し、右隣のセルが左にシフト |
複数セルのDelete | 選択範囲内で右シフトまたは下シフト(指定可) |
行のDelete | 行を丸ごと削除し、下の行が上にシフト |
列のDelete | 列を丸ごと削除し、右の列が左にシフト |
使い方の書式
Range("A1").Delete Shift:=xlShiftUp ' セルA1を削除し、下のセルを上にシフト
Range("B2:D4").Delete Shift:=xlShiftToLeft ' 範囲を削除し右のセルを左にシフト
Rows(3).Delete ' 3行目を丸ごと削除(下の行が上に詰まる)
Columns("B").Delete ' B列を丸ごと削除(右の列が左に詰まる)
Shift引数
Shift
は削除した後にどの方向にセルを詰めるか指定するオプション引数。
- 省略すると、セルの場合は
xlShiftUp
(上方向に詰める)がデフォルト。
- 行や列を削除する場合は
Shift
は不要。
主な定数
定数名 | 意味 |
---|
xlShiftUp | 下のセルを上に詰める |
xlShiftToLeft | 右のセルを左に詰める |
実用例
1. セルを削除し下のセルを上に詰める
Range("A2").Delete Shift:=xlShiftUp
2. セル範囲を削除し右のセルを左に詰める
Range("B2:C3").Delete Shift:=xlShiftToLeft
3. 行を削除(3行目を丸ごと消す)
Rows(3).Delete
4. 列を削除(B列を丸ごと消す)
Columns("B").Delete
注意点
Delete
はセルの内容だけでなく、セル自体を「なくす」のでデータの構造が変わることに注意。
- セルを削除すると、参照している数式やマクロに影響が出る場合がある。
- 行や列を削除すると、シート全体のデータの位置が変わるため、意図しない影響が発生することがある。
まとめ
メソッド | 動作 | 主な用途 |
---|
ClearContents | セルの値・数式のみ消去 | 内容だけ消したい場合 |
Clear | セルの値・書式・コメントをすべて消去 | セルを初期状態に戻したい場合 |
Delete | セルや行・列をワークシートから削除し、詰める | セル・行・列を完全に削除したい場合 |