Hỏi về cách thêm 1 userfrom vào 1 workbook bằng code

  • Thread starter Thread starter liro
  • Ngày gửi Ngày gửi
Liên hệ QC

liro

Thành viên chính thức
Tham gia
25/7/09
Bài viết
72
Được thích
13
Cho em hỏi có thể thêm 1 UserForm vào trong 1 workbook bằng code được không. Nếu được thì code đó viết thế nào ??. Rất mong mọi người chỉ bảo
 
Cho em hỏi có thể thêm 1 UserForm vào trong 1 workbook bằng code được không. Nếu được thì code đó viết thế nào ??. Rất mong mọi người chỉ bảo
- Đầu tiên bạn vào menu Tools\Macro\Security ---> trong tab Trusted Publishers, bạn check vào mục "Trust access to Visual Basic Project"
- Tiếp theo chạy code này:
PHP:
Sub InsertForm()
  With ThisWorkbook.VBProject
    .VBComponents.Add(3).Name = "MyForm"
  End With
End Sub
Code trên sẽ tạo 1 UserForm có tên là MyForm
Tuy nhiên, tôi đang thắc mắc: Đã tạo UserForm thì phải có thêm các thành phần trong đó chứ nhỉ (như ListBox, CommandButton...).. Chứ lý nào chỉ tạo 1 UserForm trống rỗng?
 
Upvote 0
Đằng sau câu lệnh của Ndu thì còn phải có hàng loạt các câu lệnh xác định cao, rộng, vị trí các thuộc tính của form. Các đối tượng trên Form cũng vậy. Đây là cách cực chẳng đã. Trong VBA ta không xem được chứ trong Foxpro hay 1 số trình khác ta có thể xem mã nguồn tạo Form này. Khi ta dùng Vizard để tạo Form là đằng sau đó nó sinh ra hàng loạt mã tương ứng cho việc ta đã làm. Khi đó ta chỉ chạy code này là có Form tương ứng rồi.
Với mặt bằng chúng ta làm việc này e kiểm soát không thấu
 
Upvote 0
Với mặt bằng chúng ta làm việc này e kiểm soát không thấu
Ẹc... Ẹc... Em khoái nhất câu này
Hay nói trắng ra thì... "Với kiến thức hiện tại của CHÚNG TA thì nên học những điều cơ bản nhất"
CHÚNG TA ở đây là ám chỉ những người còn kém như em ấy (không phải nói tất cả)
 
Upvote 0
- Đầu tiên bạn vào menu Tools\Macro\Security ---> trong tab Trusted Publishers, bạn check vào mục "Trust access to Visual Basic Project"
- Tiếp theo chạy code này:
PHP:
Sub InsertForm()
  With ThisWorkbook.VBProject
    .VBComponents.Add(3).Name = "MyForm"
  End With
End Sub
Code trên sẽ tạo 1 UserForm có tên là MyForm
Tuy nhiên, tôi đang thắc mắc: Đã tạo UserForm thì phải có thêm các thành phần trong đó chứ nhỉ (như ListBox, CommandButton...).. Chứ lý nào chỉ tạo 1 UserForm trống rỗng?
Vâng phần đó em sót. Thầy có thể hướng dẫn em cách thêm 1 số các thành phần như listBox, CommandButton vào userForm tạo ra ở trên được không.
 
Lần chỉnh sửa cuối:
Upvote 0
Vâng phần đó em sót. Thầy có thể hướng dẫn em cách thêm 1 số các thành phần như listBox, CommandButton vào userForm tạo ra ở trên được không.
Bạn xem cách củ chuối về tạo form, các thành phần và canh chỉnh các thành phần trên form như sau nhé

Mã:
Sub TaoForm()
     
    Dim frmNewForm As Object
    Dim TextBox As MSForms.TextBox
    Dim NewButton As MSForms.CommandButton
    Dim NewListBox As MSForms.ListBox
    Dim NewCombo As MSForms.ComboBox
    Dim LineCounter As Long
     
    Application.VBE.MainWindow.Visible = False
    
    [B][COLOR=Green]'Tao Form[/COLOR][/B]
    Set frmNewForm = ThisWorkbook.VBProject.VBComponents.Add(3)
    [B][COLOR=Green]'Tao Texbox[/COLOR][/B]
    Set TextBox = frmNewForm.Designer.Controls.Add("Forms.TextBox.1")
[B][COLOR=Green]    'Tao CommandButton[/COLOR][/B]
    Set NewButton = frmNewForm.Designer.Controls.Add("Forms.CommandButton.1")
    [COLOR=DarkGreen][B]'Tao Listbox[/B][/COLOR]
    Set NewListBox = frmNewForm.Designer.Controls.Add("Forms.ListBox.1")
   [B][COLOR=Green] 'Tao ComBobox[/COLOR][/B]
    Set NewCombo = frmNewForm.Designer.Controls.Add("Forms.ComboBox.1")
    
[B][COLOR=Green]    'Canh chinh texbox[/COLOR][/B]
     With TextBox
        .Text = "Xin chao cac ban !!!"
        .Left = 0
        .Top = 0
        .Width = 228.75
        
      End With
    [B][COLOR=Green]  'Canh chinh CommandButton[/COLOR][/B]
      With NewButton
        .Caption = "Thoat"
        .Left = 84
        .Top = 132
      End With
      [COLOR=Green][B]'Thiet lap thuoc tinh cho combobox[/B][/COLOR]
      With NewCombo
        .Left = 0
        .Top = 104
        .Width = 228.75
        .ColumnCount = 2
        .ColumnWidths = "20;100"
        .RowSource = "Data"
        .Text = "Hay bam chon danh muc !"
      End With
    [B][COLOR=Green]  'Thiet lap thuoc tinh cho ListBox[/COLOR][/B]
      With NewListBox
        .Left = 0
        .Top = 24
        .Width = 228.75
        .ColumnCount = 2
        .ColumnWidths = "20;100"
        .RowSource = "Data"
      
      End With
  [B][COLOR=Green] 'Chen code cho form[/COLOR][/B]
    With frmNewForm.CodeModule
        LineCounter = .countoflines
        .insertlines LineCounter + 1, "Private Sub CommandButton1_Click()"
        .insertlines LineCounter + 2, vbTab & "Unload Me"
        .insertlines LineCounter + 3, "End Sub"
        
        .insertlines LineCounter + 4, "Private Sub ComboBox1_Change()"
        .insertlines LineCounter + 5, vbTab & "TextBox1 = ComboBox1.Column(1)"
        .insertlines LineCounter + 6, "End Sub"
    End With
     
End Sub
 

File đính kèm

Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom