【VBA】「Pasteメソッドが失敗しました」の原因と対策(実行時エラー1004)
VBAでPasteメソッドを使うと、高い確率でエラーが発生します。
今回はPasteメソッドでエラーが発生する原因と対策を紹介します。
対策はとても簡単なので、すぐに使ってみてください。
「Pasteメソッド」エラーが発生する原因
Pasteメソッドでエラーが発生する原因はクリップボードを使うからです。
- Copyメソッド:クリップボードにデータを保存
- Pasteメソッド:クリップボードからデータを貼付け
クリップボードはマクロ(VBA)ではなく、Windowsの機能になります。
そのため、VBAと同じ速さで動いてくれません。
VBAの方が速いとクリップボードに保存するよりも先に、Pasteメソッドが実行されることがあります。
こういった場合でPasteメソッドでエラーが発生します。
※エラーの原因は他にもありますが、この理由が多いと思います。
「Pasteメソッド」エラー対策
エラー対策はとても簡単です。
クリップボードを使わずにコピーすれば良いのです。
Sub CopyWithoutError()
'エラーの起こらないペースト方法
Range("A1").Copy Destination:=Range("B1")
End Sub
CopyメソッドにはDestinationという引数があります。
この引数を使うとPasteメソッドを使わずに、コピペを行うことができます。
Destinationで指定した場所へデータを貼付けしてくれます。
この方法はクリップボードへの保存を行わないため、エラーの心配なく使うことができます。
Pasteメソッドを使うことなく、この方法でコピペするのがおすすめです。