View Single Post
  #5   Report Post  
Posted to microsoft.public.excel.programming
Howard Kaikow Howard Kaikow is offline
external usenet poster
 
Posts: 269
Default Using Userform object in Excel via automation from VB 6

"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.