【Excel VBA】ペースト(貼り付け)【マクロ】

この記事は約3分で読めます。

こちらの記事で、コピー、カット(切り取り)したデータをペースト(貼り付け)する方法について確認します。

コピーの方法についてはこちらをご覧ください。

セル・シート・ファイルのコピー

ペースト(貼り付け)

書式

オブジェクト.Paste(Destination,Link)

Copy,Cutメソッドでクリップボードに保管したデータを指定した場所に貼り付けます。

Copy,Cutメソッドを実行したときに引数を指定しなかった時に使います。

Destinationは引数で、ここにセルを指定することで指定した位置に貼り付けを行います。

Destinationで引数を指定しない場合は、現在の選択範囲に貼り付けを行います。

Destinationで引数を指定してペースト

3行目で、引数DestinationにセルI1を指定することでPasteを実行しています。

実行結果はこちらです。

緑色セルの左側にあるコピー元の内容を、緑色セルの右側に貼り付けしています。
Destinationで引数を指定してペースト

Link:=Trueにしてペースト

Link:=Trueにすると、コピー元の値が変化した場合にコピー先の値も変化します。

リンク貼り付けを行う場合は、Destinationで引数を指定することはできないため、

先に貼り付け先のセルを指定しておく必要があります。

こちらはリンク貼り付けを実行した結果です。

リンク貼り付けの実行結果

G列の内容を変化させると、O列の値も自動で変化します。

リンク貼り付けを実行すると、コピー元の値が変化した場合、コピー先のセルの値も変化する

セルを指定してペースト

A1のセルが含まれる範囲をすべてコピーし、9列目以降へペーストしています。

セルを指定した場合はCopyは使えますが、Pasteを使うことができません。

そのため、PasteSpecialを使っています。

詳しくはこちらの記事の「原因」の項目をご覧ください。

RangeオブジェクトはPasteメソッドを持たない

貼り付けたいセルをアクティブにしてペースト

Pasteメソッドは、引数に何も指定しなければ、アクティブセルにペーストします。

そのため、セルを先に指定してアクティブにして置き、その次の行でPasteメソッドを実行する方法もあります。

まとめ

今回の内容をまとめるとこのようになります。

  • 引数(Destination)で指定したセルに貼り付けができる。
  • 引数(Destination)で貼り付け先を指定しない場合はアクティブセルに貼り付けする。
  • Pasteでは指定できるのはワークシートまで。セルをしていしてPasteはできないため、PasteSpecialか引数で貼り付け先を指定する
  • リンク貼り付けをすることで、コピー元が変化するとコピー先も変化する

 

Excel VBAの学習にはこちらの書籍を活用しています。

   

1冊目で基礎知識を学習し、2冊目では実際にマクロを組む際に使用しています。

2冊目はKindle Unlimitedの対象です。Kindle Unlimitedは月1,000円で対象の方が好きなだけ読むことができます。是非活用してみましょう。

 

コメント