I have created a form in Visual Studio 2013 which is used to enter data in Excel by multiple users at same time. It works perfectly fine except if two users open form at the same time or if one has clicked submit and the form is still processing, error occurs.

Unhandled exception has occurred in your application. Exception from HRESULT: 0x800A03EC
When writing data to file, I want to make it read only so that other users can wait. How do I do this?

Imports excel = Microsoft.Office.Interop.Excel
Imports System.Runtime.InteropServices

Public Class Form1
Dim xlapp As New excel.Application
Dim workbook As excel.Workbook
Dim worksheet As excel.Worksheet

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
workbook = xlapp.Workbooks.Open("\2.xlsx")
xlapp.Visible = False
worksheet = workbook.Sheets("sheet1")
End Sub

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

If workbook.MultiUserEditing Then
    workbook.AcceptAllChanges()
    workbook.Save()
End If

Dim row As Long
Dim alpha As Long = 0
row = 5
With worksheet
    Do While .Cells(row, 4).value IsNot Nothing
        row = row + 1
    Loop

    .Cells(row, 2).value = Me.fname.Text
    .Cells(row, 3).value = Me.lname.Text
    Me.fullname.Text = Me.fname.Text + Me.lname.Text
    .Cells(row, 4).value = Me.fullname.Text

End With
xlapp.DisplayAlerts = False

workbook.SaveAs("\2.xlsx", AccessMode:=excel.XlSaveAsAccessMode.xlShared)

End Sub
End Class