ник: Bellerofont
Дык, можно просто сразу делать Visible = False, написав перед этим On Error Resume Next.
Так как, если контрол имеет фокус, его нельзя сделать невидимым.
А проверить какой контрол имеет фокус можно с пощью Screen.ActiveControl или Form.ActiveControl.