"Stephen Bullen" wrote in message
...
Hi Howard,
What I really wanted to do was:
With objExcelProject.VBComponents(objUserform.Name)
.Caption = "bye bye!"
.Show
End With
However, the Caption does not get changed.
I probably don't want to know <g, but why are you trying to create the
form within the workbook, show it and delete it?
I was using the example in John Walkenbach's book for purposes of
discussion.
Why don't you just
have a form in the VB6 project?
It has to be a Userform that is run via Automation.
Referencing the VBComponent as you've done returns a VBComponent
object, not a UserForm object, so you can't set the properties
directly.
Is there a way to reference the created Userform directly?
I 've not found a way to do that.
However, the VBComponent does have a Properties collection
that contains all the properties you see in the Properties window when
you click on a userform. Hence, the following works for me:
With objExcelProject.VBComponents(objUserform.Name)
.Properties("Caption") = "bye bye!"
.Show
End With
The .Show still does not work.
If I cannot directly access the Userform object, and, more importantly, the
controls in the
VB code, then I'll do things by generating code for
Userform_Initialize, etc.