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

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

2024年5月11日

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

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

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

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上級者を目指したい人にはパーフェクトExcel VBA一択です。
この本を読み切れば間違いなくVBA上級者になれます。

created by Rinker
技術評論社
¥3,608 (2024/11/23 15:08:04時点 Amazon調べ-詳細)
VBAが難しいと感じたら
ココナラにてVBAの作成依頼を受け付けています。
ご依頼・ご相談はこちらから

VBA

Posted by やろまい