Use a class Molule to do this.
Open the form in design view, changes the datatype of the subject control to Listbox. Modify whatever listbox properties are appropriate, i.e. rowsource, column count, column width, width, height.
I don't think that you've thought this threw. Why not just create the listbox and keep it hidden until needed, then on some event hide the textbox and display the listbox and, on some other event, display the textbox and hide the list box.
The latter is significantly easier that imprementing what you asked.