Microsoft 製品に組み込まれている Visual Basic の実装。
古い質問ですが、ネット上に解決方法の記載がほとんど無いようなので。
CopyPictureメソッドはセル範囲のコピーを行い即座に図に変換してクリップボードに送る仕組みですが、この「セル範囲のコピー」に失敗した場合に1004エラーとなる模様です。
Copy処理の完了前に次の処理に入ってしまいエラーとなると考えると良いかと。
PCの性能や環境でマクロの実行速度が違うため、PCによって発生したりしなかったりするようですね。発生するかどうか見分けるのはMicrosoftのエンジニアでも十中八九不可能です。
CopyPictureではなく、Copyメソッドを使い、
Selection.Copy
DoEvents
Pictures.Paste(Link:=False)
と変更し、これでCopyでは素通りするがPaste時にエラーとなる場合はマクロ冒頭に
Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
を記述、Sleepコマンドを有効にし、
Selection.Copy
DoEvents
Sleep (100)
でDoEvents後に0.1秒の猶予を持たせる方法である程度回避可能です。
これでも再発するならば「On Error Goto ~」と「Resume ~」を使い、
エラー発生時にはコピー直前のラベルにResumeしてコピーをやり直して再度Pasteという手が考えられます。