View Single Post
  #8   Report Post  
Posted to microsoft.public.excel.programming
K Dales[_2_] K Dales[_2_] is offline
external usenet poster
 
Posts: 1,163
Default delete Userform control programmatically

No, ben, I apologize as in retrospect you were clear that you were talking
about a userform control, not the userform itself. But, hey, I found out
something useful, right?

A run-time control can be deleted with .Remove, but the argument is the
index number in the controls collection, which can make it tricky since that
can change - but this seems to work:

i = 0
While i < UserForm1.Controls.Count
If UserForm1.Controls(i).Name = "MyControl" Then
UserForm1.Controls.Remove i
i = i + 1
Wend

Hope this finally gives you what you need!


"ben" wrote:

K. Dales,

I must apologize to everyone, it seems my question was not specific
enough. Let me try again. I want to delete a Control off of a Userform, not
the userform itself, and I wish to do so through VBA not in VBE in design
mode. I did find how to remove all controls, but I wish to do only one at a
time.

"K Dales" wrote:

Geez, Ben, didn't turn out to be so easy to figure this out, but you got me
curious so I followed the trail and found the answer: You need to add the
VBIDE (Microsoft Visual Basic for Applications Extensibility) reference, and
then:

ThisWorkBook.VBProject.VBComponents.Remove _
ThisWorkBook.VBProject.VBComponents("UserForm1")


"ben" wrote:

Have searched on discussion groups and not found what I am looking for.
How do you programmatically delete a Userform control. This is one that I
have created myself through VBA.
Ben