It is impossible to hide sheets from anybody with a modicum of VBA skills.
This is the second best you can do, the best is to only distribute one sheet to one person. Be aware that if someone disables Macros, they can access the entire book.
You need a Splash sheet or a sheet that will not be deleted. If the Tab Names are not the same as the UserNames, you will need to cross reference Sheet Names to UserNames. See Function GetSheet.
Option Explicit
Private Sub Workbook_Open()
DeleteSheets
End Sub
Sub DeleteSheets()
'Deletes most sheets in Book
Dim CurrentUser As String, UserSheet As String
Dim Sht As Worksheet
CurrentUser = Environ("UserName")
'List Authorized UserNames (Full Viewers) as necessary
If CurrentUser = "JackChang" Then Exit Sub
If CurrentUser = "TomJones" Then Exit Sub
If CurrentUser = "JoeSmith" Then Exit Sub
UserSheet = GetSheet(CurrentUser)
Application.DisplayAlerts = False
For Each Sht In Sheets
If Sht.Name = "Splash" Or Sht.Name = UserSheet Then GoTo SheetNext
Sht.Delete
SheetNext:
Next
Application.DisplayAlerts = True
End Sub
Private Function GetSheet(CurrentUser As String) As String
'Cross reference UserName to Sheet Name
Select Case CurrentUser
'UserName then SheetName
Case Is = "JDoe": GetSheet = "Doe, J."
Case Is = "SamT": GetSheet = "Sam Tyler"
Case Is = "DisneyLand ": GetSheet = "Mickey Mouse"
'Continue for all Users and sheet names
Case Else: GetSheet = "Splash" 'All Sheets will be deleted if not Proper User
End Select
End Function