Leading the way in Microsoft Office Development
 Home|Excel|Word|PowerPoint|

VBA

|SharePoint|Consultancy|Newsletter|Contact 
 VBA > Userforms > Modeless Userforms< Previous | Next > 

 

Step 1 - What is a Modeless Userform ?

 
 

From Office 2000 it is possible to create modeless (as well as modal) dialog boxes.

 
 

Modeless dialog boxes allow the user to continue to work in the application while the form is still displayed.

 
 

By default all userforms are displayed as modal which means that the user must close the userform before they can contine to use the application.

 
 

When a UserForm is modal, the user must supply information or close the userform before using any other part of the application. No subsequent code is executed until the userform is hidden or unloaded.

 
 

Although other forms in the application are disabled when a userform is displayed, other applications are not.

 
 

When the UserForm is modeless, the user can view other forms or windows without closing the UserForm.

 
 
1
Userform1.Show ([modal])
   
 

modal - A boolean value that determines if the userform is displayed as a modal userform or a modeless userform.

 
 
2
Userform1.Show (1) 'this is the default
   

 
3
4
5
6
Sub Macro1()
   Load UserForm1
   UserForm1.Show (VBA.FormShowConstants.vbModal)
End Sub
   
 

VBA.FormShowConstants.vbModal = 1

 
 

VBA.FormShowConstants.vbModeless = 0

 

 

Step 3 - ShowModal property

 
 

The default value for this property is True which will display the userform in a modal mode.

 
 

You can change this to False if you would rather display the userform in a modeless mode.

 
   

 

Step 4 - Combining with RefEdit

 
 

Make sure you do not use a modeless form in combination with the RefEdit control for inputting cell ranges.

 
 

Otherwise Excel loses control over the keyboard focus and can only be terminated through brute force (task manager or Ctrl + Alt + Delete)

 

 

Step 5 - Things to Remember

 
 
  • If you attempt to open a UserForm that has a ShowModal property in Microsoft Office 97, you get a run-time error because Office 97 only displays modal UserForms.

     
     
  • When a UserForm is modeless, subsequent code is executed as it's encountered. Modeless forms do not appear in the task bar and are not in the window tab order.

     

     Copyright © 2012 Better Solutions Limited. All Rights Reserved.< Previous | Top | Next >