VBA,可以通过代码创建新的标准用户表单吗?

时间:2014-10-17 14:52:36

标签: vba userform

我希望能够在我的VBA程序启动后根据需要创建表单。这可能吗?

我有搜索stackoverflow和整个网络,无法找到明确的答案。如果可以,我还没有找到代码来完成它。

如果可能的话,我只是在寻找一些非常基本的通用代码。

1 个答案:

答案 0 :(得分:0)

一般来说,你可以做你以后的事情,虽然你遗漏了很多细节,所以很难说。

表单就像任何其他类一样,因此可以实例化其中的许多类。

Public Sub CreateForms()

    Dim i As Integer

    For i = 1 To 3
        Dim u As UserForm1
        Set u = New UserForm1
        u.Show False ' <- Set modal to false so the new form will not block the loop.
    Next i

End Sub

这应该创建相同表格的三个副本。

修改

在回顾了Tim的评论之后,我已经添加了以下内容。

Dim u As UserForm1
Set u = New UserForm1
Dim t As MSForms.CommandButton
Load u

With u
    Set t = u.Controls.Add("Forms.CommandButton.1", "cmdButton1", True)
    With t
        .Caption = "Dynamic Button"
        .Left = 10
        .Top = 10
    End With
    .Height = 300
    .width = 600
    .Caption = "Dyanmic Form"
    .Show
End With

看起来您确实需要创建一个空白表单,但您可以只使用一些简单的东西作为您希望生成的任何表单的基础。

更多信息:http://msdn.microsoft.com/en-us/library/aa277578%28v=vs.60%29.aspx