View Single Post
  #1   Report Post  
Posted to microsoft.public.excel.programming
Rick Knight[_2_] Rick Knight[_2_] is offline
external usenet poster
 
Posts: 2
Default Create and show UserForm from Add-In

Hi,

I have am running Excel 2002, and have written an Add-In (.xla).

Upon starting Excel, the add-in dynamically builds a menu. When the
user clicks one of the menu items, the add-in then dynamically creates
a user form (of type vbext_ct_MSForm), in the currently active
workbook. This form is then populated with controls (command buttons
and the like) and then tries to display it modally.

Because the add-in is protected, it can not be modified, so therefore
I have had to create the UserForm in the ActiveWorkbook. The problem
is that, once the form is created, I can not figure out how to show
it.

Refer to the sample code snippet below.

On line 13 I get the error "424 - Object Required". This is because
'MyCustomForm' was added to the ActiveWorkbook not the add-in's
workbook.

But, If I comment back in line 14, I get the compile error: "Method or
Data Member Not Found".

Can anyone help!

Thanks in advance.
Rick.

01 ' Create the form in the active workbook
02 Dim objForm As VBComponent
03 Set objForm = ActiveWorkbook.VBProject.VBComponents.Add(vbext_ct _MSForm)
04
05 ' Set the forms properties
06 objForm.Properties("Name") = "MyCustomForm"
07
08 ' Add controls to the form
09 ...
10
11 ' Add the user form to the UserForms collection
12 Dim myForm as Object
13 Set myForm = VBA.UserForms.Add("MyCustomForm")
14 'Set myForm = VBA.ActiveWorkbook.UserForms.Add("MyCustomForm")
15
16 ' Show the form
17 Call myForm.Show(vbModal)