【VBA】「Pasteメソッドが失敗しました」の原因と対策(実行時エラー1004)

2023年3月28日

VBAでPasteメソッドを使うと、高い確率でエラーが発生します。

今回は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メソッドを使うことなく、この方法でコピペするのがおすすめです。

VBAが難しいと感じたら
プロにお任せして代わりに作ってもらってはいかがでしょう?
VBAの作成依頼はこちらから

《VBA中級者向けの本》
VBA上級者を目指したい人にはパーフェクトExcel VBA一択です。

created by Rinker
技術評論社
¥3,608 (2023/06/06 16:32:04時点 Amazon調べ-詳細)

他の「VBA」の記事はこちらからどうぞ

VBA

Posted by やろまい