2014-10-17 11 views
0

我希望能夠在我的VBA程序啓動後根據需要創建表單。這可能嗎?VBA,可以通過代碼創建新的標準用戶窗體嗎?

我有搜索stackoverflow和跨網絡,無法找到明確的答案。如果可以完成,我還沒有找到代碼來完成它。

我只是尋找一些非常基本的通用代碼來做到這一點,如果可能的話。

+0

添加形式的例子:http://stackoverflow.com/questions/26408483/difference-between-declaring-a-userform-as-object-vs-msforms-userform#comment41466507_26408483 – 2014-10-17 15:12:17

+0

而且 - http://j-walk.com/ss/excel/tips/tip76.htm – 2014-10-17 17:11:39

回答

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 

這應該創建三份相同的表單。

編輯

審查蒂姆的評論之後,我已經添加了下面。

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

+0

如果你的項目中已經有了一個表單,那麼這個方法就行得通了 - 我想OP會詢問如何從頭開始創建表單。 – 2014-10-17 15:10:10

+0

@TimWilliams啊。我想你是正確的。我第一次沒有這樣讀。 – Seth 2014-10-17 17:03:15