You know how sometimes you see text in an input field prompting for an answer? When you click it, it goes away, but comes back if you deselect without having typed anything.
How do I accomplish this in an Excel text box? Can this be done at all?
I think I could accomplish this if I attach a click macro to the text box and the macro can be able to tell what text box was clicked, but the problem with the click macro is it won't let you select the object first, so you have no idea what was clicked. And I don't want to hard code the text box name in the click macro code.
I think you're referring to a "placeholder" in a UserForm. The two tricks that I use to achieve this are the "tag" property and Enter and Exit events. First, create your sub modules that will fire upon Enter (focus) and Exit (blur).
Next, for each instance of your textbox on your userform, double click on the textbox while in View Object mode. This will automatically create a Private Sub for the change event. Head to the upper right hand corner of the toolbar and change the "Change" drop down list to "Enter". This will create a new Private Sub for the Enter event. Repeat this process again, but select "Exit" to create the Exit event. Now, simply copy the following code into the Enter and Exit events respectively (I've used the default name for the first textbox, but this is name independent when calling the events).
If you are placing these calls in an external module, simply replace "Me" with the name of the UserForm.
You could do it with a couple of events. To clear the box on click is pretty easy:
I'd add some other steps, add a worksheet_activate event to set an inital value and set a flag for if the default value is set:
Then I'd add a TextBox1_Change event to remove the default flag
And finally adjust the original GotFocus event to include the flag check:
You'll need to make it work for you, this way if you change tabs it will reset the text but you can have it check that on activate and change it to suit when you want it to reset.
Jesse