通过视频我们可以看出,运行代码后,可自动绘制窗体,绘制了7个按钮,7个文本框,这样就避免了手动创建排列控件。 下面我们来看看代码,在运行代码前,首先要勾选以下引用 工具-勾选引用Microsoft Visual Basic for Applications Extensibility 5.3 下面我们来看看代码: Sub CreateUserForm() Application.ScreenUpdating = False Dim VBcomp As VBComponent Set VBcomp = ActiveWorkbook.VBProject.VBComponents.Add(vbext_ct_MSForm) '新增Module1 With VBcomp.Properties .Item('Font')('Size').Value = 11 .Item('Font')('Name').Value = '微软雅黑' .Item('Font')('Bold').Value = True .Item('BackColor').Value = RGB(254, 253, 253) .Item('BorderColor').Value = RGB(0, 0, 0) .Item('Width').Value = 350 .Item('Height').Value = 320 .Item('Caption') = '这是自动创建的Caption' End With Dim cmd As CommandButton, tBox As Object For i = 1 To 7 Set cmd = VBcomp.Designer.Controls.Add('Forms.CommandButton.1') With cmd .BackStyle = fmBackStyleTransparent .Caption = 'AutoButton' & i .ForeColor = RGB(0, 0, 0) .Left = 20 .Top = 10 (i - 1) * 40 .Width = 80 .Height = 30 End With Set tBox = VBcomp.Designer.Controls.Add('Forms.TextBox.1') With tBox .BackStyle = fmBackStyleTransparent .ForeColor = RGB(0, 0, 0) .Left = 120 .Top = 12 (i - 1) * 40 .Width = 180 .Height = 26 End With Next i Application.ScreenUpdating = True End Sub 第4行:创建用户窗体 第5-14行:通过VBComponent.Properties设置用户窗体的属性 第16行:通过循环创建控件 第17行:在窗体上创建按钮 第18-26行:设置按钮的格式、位置 第27行:在窗体上创建文本框 第28-35行:设置文本框的格式、位置 |
|