- Home ›
- Excel VBA入門 ›
- セルの編集
セルの貼り付け
セルを切り取ったりコピーしたりした後でクリップボードに保存されたデータを貼り付ける方法です。ここでは Excel VBA を使ってセルを貼りつける方法について解説します。
(Last modified: )
セルを貼りつける
コピーや切り取ったセルを貼り付けるには 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の位置へ貼り付けます。
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 )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。