- 帖子
- 5923
- 主題
- 13
- 精華
- 1
- 積分
- 5986
- 點名
- 0
- 作業系統
- win10
- 軟體版本
- Office 2010
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台灣基隆
- 註冊時間
- 2010-5-1
- 最後登錄
- 2022-1-23
        
|
3#
發表於 2014-10-17 15:01
| 只看該作者
回復 2# C.F
試試看- Option Explicit
- Dim xeVBC As Object
- Private Sub Workbook_Open()
- Dim e As Object ' VBComponent
- Set xeVBC = Application.VBE.ActiveVBProject.VBComponents
- For Each e In xeVBC
- Debug.Print e.Name, e.Type '模組的Type
- If e.Type <> 100 Then xeVBC.Remove e
- Next
- 加入物件類別模組
- Report_Make_Form1
- End Sub
- Private Sub 加入物件類別模組()
- With ThisWorkbook.VBProject.VBComponents.Add(2) 'vbext_ct_ClassModule
- .Name = "ClassTest"
- With .CodeModule
- .InsertLines 2, "Public WithEvents MyNewGoNextButton1 As MSForms.CommandButton"
- .InsertLines 3, "Private Sub MyNewGoNextButton1_Click()"
- .InsertLines 4, "With MyNewGoNextButton1.Parent.MultiPage_Step"
- .InsertLines 5, "If .Value = .Pages.Count - 1 Then"
- .InsertLines 6, ".Value = 0"
- .InsertLines 7, "Else"
- .InsertLines 8, ".Value = .Value + 1"
- .InsertLines 9, "End If"
- .InsertLines 10, "End With"
- .InsertLines 11, "End Sub"
- End With '
- End With
- End Sub
- Sub Report_Make_Form1()
- Dim MyNewForm3 As Variant, I
- 'Set MyNewForm3 = ThisWorkbook.VBProject.VBComponents.Add(vbext_ct_MSForm)
- Set MyNewForm3 = ThisWorkbook.VBProject.VBComponents.Add(3)
- '***********************************
- 'vbext_rk_Project 一般模組
- 'vbext_ct_ClassModule 物件類別模組
- 'vbext_ct_MSForm 表單模組
- '此參數的常數 須在 [工具] 功能表引用項目。
- '引用 "Microsoft Visual Basic 的應用程式擴充"
- '***********************************
- Close #1
- Open "d:\MyNewForm.txt" For Append As #1
- Print #1, Now & " 開始建立 UserForm"
- Close #1
- ' Shell "notepad.exe d:\MyNewForm.txt", vbMaximizedFocus '****開啟文字檔
- With MyNewForm3
- .Properties("Caption") = "Report_Generate"
- .Properties("Width") = 570
- .Properties("Height") = 350
- .Name = "Report_Generate_Form"
- With .Designer
- With .Controls.Add("forms.Multipage.1")
- .Name = "MultiPage_Step"
- .Left = 10
- .Top = 5
- .Height = 250
- .Width = 550
- .Font.Name = "Comic Sans MS"
- End With
- '之後就 Multipage 中的 Page(0)、Page(1)中新增了一些控制項
- With .Controls.Add("forms.CommandButton.1")
- '建立個 Button 來按一步讓 MultiPage 到下一頁
- .Name = "GoNext_Btn"
- .Left = 280
- .Top = 258
- .Height = 50
- .Width = 70
- .Caption = "下一步"
- .Font.Name = "標楷體"
- .Font.Size = 14
- End With
- End With
- ' Set Class_obj3(1).MyFormObject1 = MyNewForm3 '.Designer
- ' Set Class_obj3(2).MyMultiPage1 = MyNewForm3.Designer.Controls("MultiPage_Step")
- ' 然後利用 Class 方式執行動作
- With .CodeModule
- .InsertLines 2, "Dim Class_obj As New ClassTest"
- .InsertLines 3, "Private Sub UserForm_Initialize()"
- .InsertLines 4, "Set Class_obj.MyNewGoNextButton1 = GoNext_Btn"
- .InsertLines 5, "End Sub"
- End With '
- End With
- End Sub
複製代碼 |
|