Microsoft Forms 2.0 | |
VBA UserForms aren't the same as VB forms (Ruby Forms). In fact, VBA UserForms are instances of an ActiveX Designer provided by Microsoft Forms 2.0 (FM20.dll), installed by both VBA and VB. MSForms and its controls are true ActiveX controls, whereas Ruby Forms and its controls are not. That means that MSForms and its controls support IDispatch. MSForms make no distinction between an external ActiveX control, such as third-party controls, and its own CommandButton. Unlike Ruby Forms, you can host MSForms in any application capable of hosting an ActiveX Designer. Also, you can copy controls from MSForms to Ruby Forms, but not the other way around.
MSForms are robust ActiveX containers, but because they're more generic than Ruby Forms there are a few significant differences. For example, quite a few Ruby controls aren't supported by VBA: Timer, FileListBox, PictureBox, DriveListBox, DirListBox, Menu, Shape, and Line. Of course, most of these controls are available through third-party ActiveX libraries that do work with MSForms. MSForms don't support control arrays, data binding, menus, property pages, or MDI implementations. In VBA 5.0, MSForms had the additional limitation of modal behavior. However, in VBA 6.0 (which currently ships with Office 2000), you can set the modality of MSForms to either modal or modeless using the Show Modal property. |