circledchicken has answered your question exactly as asked, but do you really need to do this with the worksheet change event? (You realize this code gets fired every single time any changes happen anywhere on the sheet, right?)
Another option might be to just use a button (from the Forms toolbar) and assign code something like this to it. That way it only fires when the user clicks the button.
Code:
Sub ShowHideButton()
ActiveSheet.Shapes("Button 1").Select
Select Case Selection.Characters.Text
Case "Show"
Sheets("Sheet2").Visible = True
ActiveSheet.Shapes("Button 1").Select
Selection.Characters.Text = "Hide"
Case "Hide"
Sheets("Sheet2").Visible = False
ActiveSheet.Shapes("Button 1").Select
Selection.Characters.Text = "Show"
Case Else
End Select
SendKeys "{ESC}"
End Sub
Of course, you'll need to use the button's real name and the real name of the sheet to show/hide.
Hope it helps.