Microsoft Forms 20 Object Library Vb6 |verified| Jun 2026
The Microsoft Forms 2.0 Object Library is a collection of user interface controls designed initially for Microsoft Office VBA (Visual Basic for Applications). It is contained within the FM20.DLL file. These controls include: A dropdown combo box. ListBox: A list box. TextBox: A multi-line enabled text box. CheckBox / OptionButton: Enhanced check/option buttons. CommandButton: A standard command button. Label: A standard label. Frame: A container for grouping controls.
If it is not listed, click and navigate to your System32 (32-bit Windows) or SysWOW64 (64-bit Windows) folder to find FM20.DLL .
The Microsoft Forms 2.0 Object Library provides a specific suite of ActiveX controls. It is automatically installed with Microsoft Office and resides in the system directory as FM20.DLL . Key Controls Included: Supports advanced formatting and text wrapping. microsoft forms 20 object library vb6
The primary reason developers turn to Microsoft Forms 2.0 is Unicode compliance. Standard VB6 controls (like VB.TextBox ) are ANSI-based; they rely on the local system code page and display question marks ( ? ) when forced to render international characters like Cyrillic, Kanji, or Arabic. The Forms 2.0 controls are natively built using wide-character string handling ( BSTR / UTF-16), allowing them to display multi-lingual text seamlessly on any Windows system. 2. Layout Flexibility and Transparency
controls that natively support multiple columns without complex API calls. Right-to-Left (RTL) Support : Controls exhibit bidirectional characteristics when the RightToLeft The Microsoft Forms 2
The library is part of the Microsoft Office suite. Its primary purpose is to power UserForms in VBA (Excel, Word, Access). However, because it’s a COM-based ActiveX control library, any COM-aware environment—including VB6—can instantiate and use its objects.
Missing or unregistered FM20.DLL. Fix: Run regsvr32 fm20.dll from an elevated command prompt. ListBox: A list box
' Explicitly declare the Microsoft Forms 2.0 variant Dim WithEvents myUnicodeTextBox As MSForms.TextBox Private Sub Form_Load() Set myUnicodeTextBox = Controls.Add("MSForms.TextBox.1", "txtUnicode", Me) myUnicodeTextBox.Visible = True myUnicodeTextBox.Text = "Привет, мир" ' Displays Russian text correctly End Sub Use code with caution. Critical Deployment and Redistribution Warnings
Close VB6. Search your computer for files ending in .exd (e.g., MSForms.exd ) and delete them. They are temporary cache files and will safely regenerate the next time you open VB6. "Class not registered" / License Errors
For the intermediate VB6 developer, the Forms 2.0 library offered features that were surprisingly advanced for the time. Unlike the standard VB6 textbox, which was essentially a wrapper for the Windows Edit control, the Forms 2.0 text box offered richer functionality. It supported features like auto-size behavior and more sophisticated event models, which were necessary for the dynamic requirements of VBA macros.
I can provide alternative code snippets or deployment fixes based on your setup. Share public link
