このサイトの記事内では「アフィリエイト広告」などの広告を掲載している場合があります。
消費者庁が問題としている「誇大な宣伝や表現」とならないよう配慮しコンテンツを制作しておりますのでご安心ください。
問題のある表現が見つかりましたらお問い合わせよりご一報いただけますと幸いです。

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

2023年3月28日

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

今回はPasteメソッドでエラーが発生する原因と対策を紹介します。

対策はとても簡単なので、すぐに使ってみてください。

VBAが難しいと感じたら
VBAのプロに代わりに作ってもらうのはいかがでしょうか?
ココナラでVBAの作成請負を受け付けています。お気軽にご相談ください。

「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

Posted by やろまい