Selected Answer
Since you only wish to hide and show a single sheet your procedure needs only a single line of code.
Sheet5.Visible = IIf(Range("Class").Value < 3, xlSheetVeryHidden, xlSheetVisible)
First off, the worksheet's Visible property can't have the values True and False. Instead it accepts the values 0, 1 and 2 which are the values of the Exzcel built-in enumerations xlSheetVisible, xlSheetHidden and xlSheetVeryHidden. VBA's Iif function used in the above code works exactly like Excel's IF() worksheet function. Note that the named range "Class" must be scoped to be available in the whole workbook, not just the sheet it is on.
"Sheet5" in the above code is the sheet's CodeName. The CodeName is different from the tab's name which can be changed from the worksheet level. The CodeName remains the same whatever name you give to the tab. It can only be changed in the worksheet's properties in the VB Editor's Properties window. If you wish to address the same sheet by its tab name the code must look like this.
Worksheets("Sheet5").Visible = IIf(Range("Class").Value < 3, xlSheetVeryHidden, xlSheetVisible)
A sheet which is hidden can be made visible by the user by selecting it from the list of hidden sheets at Format > Hide & Unhide > Unhide sheets. A VeryHidden sheet isn't listed there. It can only be made visible by changing the Visible property in the VBE, either manually or using code like the above. Modify the code in this regard to suit your preference.
Finally, you might not need a button. Install the code below in the codesheet of the worksheet on which you have the "Class" range. It won't work if you install it anywhere else.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = Range("Class").Address Then
Sheet5.Visible = IIf(Target.Value < 3, xlSheetVeryHidden, xlSheetVisible)
End If
End Sub
This code will show and hide Sheet5 as you enter a value in the "Class" cell.