Here is an example using early binding (you can adapt as needed for late binding) that creates the Excel file based on a SaveDialog then open the file by setting xlApp.Visible = True. Disposal of the Excel objects is done when the user closes Excel.
Code to create the Excel file. Note if the file exists for this example we don't try to overwrite it but by removing the check you can overwrite it but you should also know that if the file exists and is open the code will throw an exception. This can easily by remedied if you need to work this out too.
Private Sub cmdCreateFileDemo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdCreateFileDemo.Click
If SaveFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
Public Sub CreateFile(ByVal FileName As String, ByVal ShowMessageBox As Boolean)
If Not IO.File.Exists(FileName) Then
If ShowMessageBox Then
MessageBox.Show("Creating '" & FileName & "'")
Dim xlApp As Excel.Application = Nothing
Dim xlWorkBooks As Excel.Workbooks = Nothing
Dim xlWorkBook As Excel.Workbook = Nothing
xlApp = New Excel.Application
xlApp.DisplayAlerts = False
xlWorkBooks = xlApp.Workbooks
xlWorkBook = xlWorkBooks.Add()
xlApp.Visible = True