【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
    '100ミリ秒 経過後再試行
    Application.Wait [Now()] + 100 / 86400000
    DoEvents
    Resume

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