【Excel VBA】コピー処理時に時々エラーが発生して失敗する場合の対象方法

スポンサーリンク

Copyメソッド や Pasteメソッド を使用してコピー処理を行う際、時々コピーに失敗して以下のエラーが表示される場合の対処方法のメモ。

「Copyメソッドが失敗しました。」

「Pasteメソッドが失敗しました。」

原因

Copyメソッド や Pasteメソッド 実行時に何らかの理由で、クリップボートとデータがやり取りできない場合にエラーが発生するらしい。

対処方法

コピー処理に失敗した場合、一定時間待機後リトライする処理を入れることで解決することができた。

    Dim copyRetryCount As Integer: copyRetryCount = 10 'リトライ回数
    'エラー時はリトライ処理に飛ぶ
    On Error GoTo CopyRetry
    '/////////
    'コピー処理
    '/////////
     'エラー処理を解除
     On Error GoTo 0
     Exit Sub 'リトライ処理に飛ぶ前にメソッドから抜ける
'リトライ処理
CopyRetry:
    '一定時間待機後、エラー直前の処理に飛ぶ
    copyRetryCount = copyRetryCount - 1
    If copyRetryCount < 1 Then
        'リトライ回数が0の場合は、エラー処理を解除
        On Error GoTo 0
    End If
    DoEvents 'OSの処理が終わるまで待つ
    Resume

タイトルとURLをコピーしました