Я знаю, что это старый пост, но я наткнулся на него и решил добавить ответ.
Может быть, кто-то найдет это полезным когда-нибудь :-)
Я бы проверил текущее значение перед очисткой содержимого. Таким образом, он очищает контент при первом щелчке по нему, но если вы щелкнете по нему еще раз позже (возможно, для редактирования имени), он ничего не сделает, разрешив редактирование без необходимости начинать заново.
Если предположить, что TextBox имеет имя TextBox1
, а текст-заполнитель - NEW NAME HERE
, следующее должно работать
Private Sub TextBox1_Enter()
If TextBox1.Text = "NEW NAME HERE" Then
TextBox1.Text = ""
End If
End Sub
Чтобы восстановить заполнитель, если текстовое поле оставлено пустым:
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Trim(TextBox1.Text) = "" Then
TextBox1.Text = "NEW NAME HERE"
End If
End Sub
Проверено в Word 2010 VBA