Excel VBAでセルを移動するには、RangeオブジェクトまたはCellsオブジェクトのCutメソッドを使用します。
構文 |
Object.Cut(Destination)
|
引数 |
値 | 省略 | 説明 |
Destination |
可 |
移動先のセルオブジェクトを指定します。
省略した場合、移動元セルがクリップボードに貼り付けられた状態となります。
|
|
Cutメソッドは移動元セルのオブジェクトで使用し、引数に移動先のセルオブジェクトを指定します。
【例1 セルの値と書式を移動】
Range("A1").Cut Range("B1") ' A1セルの値と書式をB1セルに移動します。
Cells(1, 1).Cut Cells(1, 2) ' セル(1, 1)の値と書式をセル(1, 2)に移動します。
上記例ではどちらも同じ結果となります。
なお、Cutメソッドは値以外にセルの書式も移動しますので、値のみ移動する場合はまず代入式で値をコピー後、移動元セルをクリアすることで擬似的に移動処理を行います。
【例2 値のみ移動】
Range("B1").Value = Range("A1").Value ' A1セルの値をB1セルにコピーします。
Range("A1").Clear ' A1セルをクリアします。
Clearメソッドはセルの値と書式を削除します。セルの値の消去はこちらの記事を参照下さい。
セルの範囲を移動する
セルの範囲を移動する場合もCutメソッドを使用します。
【例3 範囲を移動】
Range("A1:B2").Cut Range("A3") ' A1:B2範囲の値と書式をA3:B4に移動します。
上記例のようにセルの範囲を指定して移動する場合、移動先は左上のセルを指定すればOKです。
セルをクリップボードにカットする
セルをクリップボードにカットする場合は引数(移動先)を指定しないでCutメソッドを使用します。
【例5 クリップボードにカット】
Range("A1").Cut
上記例ではセルA1がクリップボードにカットされます。