Самый простой способ, который я могу рассмотреть, - это иметь 2 текстовых поля - одно с фоном, другое без.
Сверху находится поле без фона, где вы набираете текст.Тот с фоном позади него и не может быть выбран.Когда в верхнем текстовом поле есть текст, нижний пустой.Когда редактируемое текстовое поле пусто, фоновое поле содержит текст.
Или, если вы используете текстовое поле ActiveX в качестве верхнего слоя, вы можете использовать опцию BackStyle
для переключения прозрачности, например, так:
Private Sub TextBox1_LostFocus()
If Len(TextBox1.Value) > 0 Then
TextBox1.BackStyle = fmBackStyleOpaque
Else
TextBox1.BackStyle = fmBackStyleTransparent
End If
End Sub