Dim WithEvents btn As MSForms.CommandButton Private Sub btn_Click() MsgBox "Button clicked!" End Sub
However, fully dynamic event hooking (addressing arbitrary controls created at runtime) requires maintaining a collection of WithEvents variables or using CallByName . The DataObject provides a clean way to read/write clipboard text without Win32 APIs: microsoft forms 2.0 object library
While often overlooked, the library has powerful automation interfaces accessible via VBA or any COM-aware language (C#, VB6, PowerShell). : Even in 64-bit Office, FM20.DLL is typically a 32-bit library (due to legacy constraints). This affects cross-bitness COM calls. 2. Core Object Model The main programmatic entry point is the Forms object, created via: Dim WithEvents btn As MSForms
Dim frm As Object Set frm = CreateObject("Forms.Form.1") Or using the built-in New keyword with a reference set to Microsoft Forms 2.0 Object Library . | Object | Description | |--------|-------------| | Form | Container for controls; supports properties like Caption , Width , Height , BackColor . | | Control | Base class for all form controls. | | Controls | Collection of controls on a form. | | TextBox , ComboBox , etc. | Individual UI elements with events ( Click , Change , Enter , Exit ). | | DataObject | Handles clipboard operations (GetText, SetText, PutInClipboard). | | Font / Picture | Typography and image handling. | Sample instantiation (VBA): Dim frm As Object Dim txt As Object Set frm = CreateObject("Forms.Form.1") frm.Caption = "Dynamic Form" frm.Width = 300 frm.Height = 200 This affects cross-bitness COM calls
Example – handling a button click dynamically:
Here’s a technical deep-dive write-up on the , aimed at developers, security researchers, and IT pros working with VBA, VBScript, or legacy Office automation. Deep Dive: Microsoft Forms 2.0 Object Library – Capabilities, Quirks, and Security Considerations 1. Overview Microsoft Forms 2.0 Object Library ( FM20.DLL ) is a component shipped with Microsoft Office (starting from Office 97 through Office 2019 and Microsoft 365). It provides the underlying engine for UserForms in VBA (Excel, Word, Outlook, etc.) and controls like TextBox , ComboBox , ListBox , CheckBox , OptionButton , CommandButton , MultiPage , and Image .
Set txt = frm.Controls.Add("Forms.TextBox.1", "MyTextBox", Visible:=True) txt.Text = "Hello Forms 2.0"