セルの貼り付け

広告

セルを切り取ったりコピーしたりした後でクリップボードに保存されたデータを貼り付ける方法を確認します。セルを貼り付けるには、Worksheetオブジェクトに対して「Paste」メソッドを使います。(Rangeオブジェクトではないので注意して下さい)。

Range("A1").Copy

Range("B2").Select
ActiveSheet.Paste

シートの中で貼り付けられる場所は、現在シートの中で選択されているセルとなります。また「Destination」引数を使ってデータを貼り付けるセルを指定することも出来ます。

Range("A1").Copy

ActiveSheet.Paste Destination:=Range("E2")

コピーモード

「Cut」メソッドや「Copy」メソッドを使った場合に「Destination」プロパティをしなかった場合はクリップボードにデータが保存されただけの状態になります。この状態をコピーモードと呼びます。この状態ではコピーなどがされたセル領域が点滅した状態になっています。

セルの貼り付け

コピーモードにある場合に、他のセルに貼り付けを行うことができます。1回貼り付けを行っただけではコピーモードは解除されません。

セルの貼り付け

その為、コピーモードにある場合は続けて何度でも貼り付けを行うことが出来ます。

貼り付けが終わってコピーモードを解除する場合には、Applicationオブジェクトで用意されている「CutCopyMode」プロパティに「False」を設定します。

Range("A1").Copy

ActiveSheet.Paste Destination:=Range("B1")
ActiveSheet.Paste Destination:=Range("C1")

Application.CutCopyMode = False

サンプルプログラム

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

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

セルの貼り付け

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

testcelledit5.bas

Sub テスト()

    Dim range1 As Range
        
    Set range1 = Range("B2:C5")
    range1.Copy
    
    ActiveSheet.Paste Destination:=Range("E2")
    ActiveSheet.Paste Destination:=Range("B7")
    
    Application.CutCopyMode = False

End Sub

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

セルの貼り付け

Excel VBA入門の他の記事を見てみる

( Written by Tatsuo Ikura )

関連記事 (一部広告含む)