Home » , , » Sử dụng Visual Basic cho Applications (VBA) để thay đổi UserForms trong Excel

Sử dụng Visual Basic cho Applications (VBA) để thay đổi UserForms trong Excel

Written By Unknown on Tuesday, September 3, 2013 | September 03, 2013


UserForm khái niệm cơ bản

Làm thế nào để hiển thị một UserForm

Cú pháp được sử dụng để hiển thị một UserForm lập trình là những điều sau đây:
UserFormName.Hiển thị
Để hiển thị một UserForm mà được đặt theo tên UserForm1, sử dụng các mã sau đây:
UserForm1.Show
Bạn có thể tải một UserForm vào bộ nhớ mà không thực sự hiển thị nó. Nó có thể mất một UserForm phức tạp một vài giây để xuất hiện. Bởi vì bạn có thể preload một UserForm vào bộ nhớ, bạn có thể quyết định khi phải chịu chi phí này. Để tải UserForm1 vào bộ nhớ mà không hiển thị nó, sử dụng các mã sau đây:
Load UserForm1
Để hiển thị UserForm, bạn phải sử dụng các phương pháp Hiển thị được hiển thị trước đó.

Làm thế nào để tạm thời ẩn một UserForm

Nếu bạn muốn tạm thời ẩn một UserForm, sử dụng phương pháp ẩn . Bạn có thể muốn ẩn một UserForm nếu ứng dụng của bạn liên quan đến việc di chuyển giữa UserForms. Để ẩn một UserForm, sử dụng các mã sau đây:
UserForm1.Hide
Để biết thêm chi tiết, nhấp vào số bài viết sau để xem bài viết trong cơ sở kiến thức Microsoft:
213747 XL2000: Làm thế nào để di chuyển giữa các tuỳ chỉnh UserForms với nút lệnh

Làm thế nào để loại bỏ một UserForm từ bộ nhớ

Để loại bỏ một UserForm từ bộ nhớ, sử dụng các báo cáo dỡ bỏ . Để lấy một UserForm mà được đặt theo tên UserForm1, sử dụng các mã sau đây:
Unload UserForm1
Nếu bạn lấy một UserForm trong một thủ tục sự kiện đó là liên kết với một UserForm hoặc đó là liên kết với một điều khiển trên một UserForm (ví dụ, bạn bấm vào một điều khiển CommandButton ), bạn có thể sử dụng "Tôi" từ khóa thay vì tên của UserForm. Sử dụng "Tôi" từ khóa để lấy một UserForm, sử dụng các mã sau đây:
Unload Me

Làm thế nào để sử dụng sự kiện UserForm

UserForms hỗ trợ nhiều sự kiện được xác định trước, bạn có thể đính kèm các quy trình VBA để. Khi sự kiện xảy ra, các thủ tục mà bạn gắn liền với các sự kiện chạy. Một hành động duy nhất được thực hiện bởi một người dùng có thể bắt đầu nhiều sự kiện. Một trong những thường xuyên các sự kiện được sử dụng cho một UserForm là khởi tạo sự kiện, sự kiện nhấp vào , và chấm dứt sự kiện.

Lưu ý Một mô-đun Visual Basic có một thủ tục sự kiện có thể được gọi là một mô-đun "đằng sau" UserForm. Một mô-đun có sự kiện thủ tục không phải là được nhìn thấy trong bộ sưu tập mô-đun của cửa sổ Microsoft dự án Explorer của Visual Basic Editor. Bạn phải nhấp đúp vào cơ thể của một UserForm để xem các mô-đun UserForm mã.

Làm thế nào để bẫy UserForm sự kiện

Để bẫy UserForm sự kiện, hãy làm theo các bước sau:
  1. Tạo ra một bảng tính mới trong Excel.
  2. Trên menu Công cụ , trỏ đến Macro, và sau đó bấm Visual Basic Editor.
  3. Trên các chèn trình đơn, nhấp vào UserForm để chèn một UserForm trong bảng tính của bạn.
  4. Nhấp đúp vào UserForm để hiển thị cửa sổ mã cho UserForm.
  5. Trong các mô-đun, hãy nhập mã sau đây:
    Private Sub UserForm_Click()

    Me.Height = Int(Rnd * 500)
    Me.Width = Int(Rnd * 750)

    End Sub

    Private Sub UserForm_Initialize()

    Me.Caption = "Events Events Events!"
    Me.BackColor = RGB(10, 25, 100)

    End Sub

    Private Sub UserForm_Resize()

    msg = "Width: " & Me.Width & Chr(10) & "Height: " & Me.Height
    MsgBox prompt:=msg, Title:="Resize Event"

    End Sub


    Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)

    msg = "Now Unloading " & Me.Caption
    MsgBox prompt:=msg, Title:="QueryClose Event"

    End Sub

    Private Sub UserForm_Terminate()

    msg = "Now Unloading " & Me.Caption
    MsgBox prompt:=msg, Title:="Terminate Event"

    End Sub
  6. Trên chạy trình đơn, nhấp vào Chạy phụ/UserForm.
Khi UserForm lần đầu tiên được nạp, vĩ mô sử dụng sự kiện khởi tạo để thay đổi tiêu đề tài sản của UserForm "Sự kiện sự kiện sự kiện!" và tài sản Backcolor lĩnh để màu xanh đậm.

Khi bạn bấm UserForm, bạn bắt đầu các nhấp vào sự kiện. Nhấp vào sự kiện thay đổi kích thước UserForm. Vì bạn tạo ra một thủ tục cho các sự kiện thay đổi kích cỡ , bạn nhận được hai tin nhắn hộp sau khi bạn bấm vào UserForm. Sự kiện thay đổi kích cỡ xảy ra hai lần do các mã đằng sau các sự kiện Bấm vào thay đổi cả hai chiều rộng bất động sản và tài sản chiều cao của UserForm.

Đóng cửa UserForm bắt đầu sự kiện QueryClose . Sự kiện QueryClose Hiển thị một hộp thư có chứa các chú thích mà bạn đã cung cấp UserForm trong mã cho sự kiện khởi tạo . Bạn có thể sử dụng các sự kiện QueryClose khi bạn muốn thực hiện một bộ hành động nếu người dùng đóng UserForm.

Sự kiện này chấm dứt sau đó tạo ra một hộp thư mà các tiểu bang rằng các chú thích của UserForm là UserForm1. Sự kiện này chấm dứt xảy ra sau khi UserForm được lấy ra từ bộ nhớ và các chú thích của UserForm trở về trạng thái ban đầu của nó.

Làm thế nào để ngăn chặn một UserForm được đóng lại bằng cách sử dụng nút đóng

Khi bạn chạy một UserForm, một nút đóng sẽ được thêm vào góc trên bên phải của cửa sổ UserForm. Nếu bạn muốn ngăn chặn UserForm được đóng lại bằng cách sử dụng nút đóng , bạn phải bẫy sự kiện QueryClose .

Sự kiện QueryClose xảy ra ngay trước khi UserForm là bỏ nạp từ bộ nhớ. Sử dụng các đối số CloseMode của các sự kiện QueryClose để xác định làm thế nào UserForm đóng cửa. VbFormControlMenu giá trị cho tham số CloseMode chỉ ra rằng nút đóng được nhấp. Để giữ cho UserForm khách sạn được hoạt động, thiết lập các đối số hủy bỏ sự kiện QueryClose để thật sự. Để sử dụng các sự kiện QueryClose để ngăn chặn một UserForm được đóng lại bằng cách sử dụng nút đóng , hãy làm theo các bước sau:
  1. Tạo ra một bảng tính mới trong Excel.
  2. Trên menu Công cụ , trỏ đến Macro, và sau đó bấm Visual Basic Editor.
  3. Trên các chèn trình đơn, nhấp vào UserForm để chèn một UserForm trong bảng tính của bạn.
  4. Thêm một điều khiển CommandButton để UserForm.
  5. Nhấp đúp vào UserForm để hiển thị cửa sổ mã cho UserForm.
  6. Trong cửa sổ mã, hãy nhập mã sau đây:
    Private Sub CommandButton1_Click()

    Unload Me

    End Sub

    Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)

    IF CloseMode = vbFormControlMenu Then
    Cancel = True
    Me.Caption = "Click the CommandButton to close Me!"
    End If

    End Sub
  7. Trên chạy trình đơn, nhấp vào Chạy phụ/UserForm.
UserForm không được đóng cửa khi bạn nhấp vào nút đóng . Bạn phải bấm điều khiển CommandButton để đóng UserForm.

Post a Comment

Cảm ơn bạn đã ghé thăm Blog của mình!
Để nhận thông báo mới nhất về bài đăng bạn hãy tick vào ô vuông bên phải ("Thông báo cho tôi")
Cảm ơn bạn!

Bài đăng nổi bật

Xuất mô hình trong etabs ra file ảnh, worl để in làm đồ án

Xuất mô hình trong etabs ra file ảnh, worl để in làm đồ án   Khi làm đồ án bt1, bt2 đồ án tốt nghiệp ta cần sử dụng các mô hình trong etabs...

Bài đăng phổ biến

Comment mới nhất