Właściwy sposób na usunięcie obiektu programu Excel za pomocą VB.NET?

Mam następujący kod (uzyskany z samouczka online). Kod działa, ale podejrzewam, że sposób na usunięcie obiektu programu Excel jest nieconiepoprawny. Czy naprawdę musimy zadzwonić do GC.Collect? Lub jaki jest najlepszy sposób na pozbycie się tego obiektu programu Excel?

<code>Public Sub t1()
    Dim oExcel As New Excel.Application
    Dim oBook As Excel.Workbook = oExcel.Workbooks.Open(TextBox2.Text)

    'select WorkSheet based on name
    Dim oWS As Excel.Worksheet = CType(oBook.Sheets("Sheet1"), Excel.Worksheet)
    Try

        oExcel.Visible = False
        'now showing the cell value
        MessageBox.Show(oWS.Range(TextBox6.Text).Text)

        oBook.Close()
        oExcel.Quit()

        releaseObject(oExcel)
        releaseObject(oBook)
        releaseObject(oWS)
    Catch ex As Exception
        MsgBox("Error: " & ex.ToString, MsgBoxStyle.Critical, "Error!")
    End Try
End Sub

Private Sub releaseObject(ByVal obj As Object)
    Try
        System.Runtime.InteropServices.Marshal.ReleaseComObject(obj)
        obj = Nothing
    Catch ex As Exception
        obj = Nothing
    Finally
        GC.Collect()
    End Try
End Sub
</code>

questionAnswers(4)

yourAnswerToTheQuestion