セルのコピーと切り取り

セルをコピーする方法と切り取る方法です。コピーしたり切り取ったセルをそのまま他の位置に貼り付ける事も出来ますし、クリップボードに保管した後で、「Paste」メソッドで貼り付ける事もできます。ここでは Excel VBA を使ってセルをコピーする方法およびセルを切り取る方法を解説します。

(2022 年 06 月 14 日公開 / 2022 年 06 月 18 日更新)

セルをコピーする

セルをコピーするには、コピーする Range オブジェクトに対して「Copy」メソッドを使います。

Dim range1 As Range

Set range1 = Range("A1")
range1.Copy Destination:=Range("B1")

コピーしたセルを直接貼り付ける場合には「Destination」引数を使って貼り付け先のRangeオブジェクトを指定します。コピーしたRangeオブジェクトがセル範囲であった場合でも、貼り付ける先のRangeオブジェクトは単独のセルを指定します。このセルは貼り付けるセルの左上のセルになります。

まとめて次のように記述しても構いません。

Range("A1:B3").Copy Destination:=Range("B1")

なお Paste メソッドを使って貼りつける場合は「セルの貼り付け」を参照して下さい。

サンプルプログラム

では簡単なサンプルで試してみましょう。

下記のようなExcelファイルを用意します。

セルをコピーする(1)

表(セル範囲B2:C5)をまとめてコピーし、セルE2の位置へ貼り付けます。

Sub テスト()

    Dim range1 As Range
        
    Set range1 = Range("B2:C5")
    range1.Copy Destination:=Range("E2")
    
End Sub

上記マクロを実行すると次のようになります。

セルをコピーする(2)

セルを切り取る

セルを切り取るには、切り取る Range オブジェクトに対して「Cut」メソッドを使います。

Dim range1 As Range

Set range1 = Range("A1")
range1.Cut Destination:=Range("B1")

切り取ったセルを直接貼り付ける場合には「Destination」引数を使って貼り付け先のRangeオブジェクトを指定します。切り取ったRangeオブジェクトがセル範囲であった場合でも、貼り付ける先のRangeオブジェクトは単独のセルを指定します。このセルは貼り付けるセルの左上のセルになります。

まとめて次のように記述しても構いません。

Range("A1:B3").Cut Destination:=Range("B1")

なお Paste メソッドを使って貼りつける場合は「セルの貼り付け」を参照して下さい。

サンプルプログラム

では簡単なサンプルで試してみましょう。

下記のようなExcelファイルを用意します。

セルを切り取る(1)

表(セル範囲B2:C5)をまとめて1つ下のセルへ移動させます。

Sub テスト()

    Dim range1 As Range
        
    Set range1 = Range("B2:C5")
    range1.Cut Destination:=Range("B3")
    
End Sub

上記マクロを実行すると次のようになります。

セルを切り取る(2)

-- --

Excel VBA を使ってセルをコピーする方法およびセルを切り取る方法を解説しました。

( Written by Tatsuo Ikura )

広告
Profile
profile_img

著者 / TATSUO IKURA

初心者~中級者の方を対象としたプログラミング方法や開発環境の構築の解説を行うサイトの運営を行っています。