COMオブジェクトの内部エラー 複数回トライ

COMオブジェクトの内部エラー メモリ解放でもダメなら 5回トライしてみる

Imports System.Runtime.InteropServices.Marshal
...
        Dim IllDoc As Illustrator.Document
        Dim IllLay As Illustrator.Layer
        Dim n, i, ErrorCount As Integer
        Dim LayName() As String = {"col1", "col2", "copy"}

        For n = 0 To NewFileList.Count - 1
            IllDoc = IllApp.Open(NewFilelist(n))

            For i = 0 To 2
                ErrorCount = 0
retry:
                IllLay = IllDoc.Layers.item(LayName(i))

                Try
                    If IllLay.Locked = True Then
                        IllLay.Locked = False
                    End If
 
                Catch ex As Exception
                    If Not IllLay Is Nothing Then ReleaseComObject(IllLay) 'エラーで入って来たらとりあえずCOMオブジェクトの開放をして
                    GC.Collect() 'メモリ解放をして

                    ErrorCount = ErrorCount + 1
                    If ErrorCount < 5 Then 'ErrorCountが5以内なら
                        GoTo retry 'retryからもう一度処理する
                    End If

                    ErrorLogList.Add(Dir(NewFilelist(n)) & "," ex.ToString) '5回試してもダメならエラーログに書き出す

                End Try
                If Not IllLay Is Nothing Then ReleaseComObject(IllLay) '通常のCOMオブジェクトの開放
                GC.Collect() '通常のメモリ解放
            Next
            IllDoc.Close(AiSaveOptions.aiSaveChanges)
            If Not IllDoc Is Nothing Then ReleaseComObject(IllDoc) 'COMオブジェクトの開放
        Next