Thanh tiến trình VBA | Tạo biểu đồ thanh tiến trình bằng mã VBA

Thanh tiến trình VBA trong Excel

Thanh tiến trình là thứ cho chúng ta biết mức độ của một quá trình đã được thực hiện hoặc kết thúc khi chúng ta chạy các bộ mã lớn đòi hỏi thời gian thực thi lớn hơn, chúng ta sử dụng thanh tiến trình trong VBA để hiển thị cho người dùng về trạng thái của quá trình hoặc nếu chúng ta có nhiều quy trình chạy trong một mã duy nhất, chúng tôi sử dụng thanh tiến trình để hiển thị quy trình nào đã tiến triển bao nhiêu.

Thanh tiến trình hiển thị phần trăm nhiệm vụ đã hoàn thành khi tác vụ thực tế đang chạy phía sau màn hình với một tập hợp các hướng dẫn do mã đưa ra.

Khi mã VBA mất một lượng thời gian đáng kể để thực thi, người dùng sẽ lo lắng không biết nó có thể kết thúc sớm bao lâu. Theo mặc định, chúng ta cần đợi toàn bộ thời gian để hoàn thành tác vụ nhưng bằng cách chèn thanh tiến trình, chúng ta sẽ biết tiến trình của mã VBA.

Trong hầu hết các phần mềm máy tính, chúng ta thấy một biểu đồ thanh tiến trình hiển thị tiến trình của tác vụ mà chúng ta đang thực hiện giống như hình dưới đây.

Trong excel, chúng ta có thể tạo Thanh tiến trình bằng cách sử dụng mã VBA. Nếu bạn đã bao giờ tự hỏi làm thế nào chúng ta có thể tạo thanh tiến trình thì đây là bài viết được thiết kế riêng cho bạn.

Bạn có thể tải xuống Mẫu thanh tiến trình VBA này tại đây - Mẫu thanh tiến trình VBA

Tạo thanh tiến trình của riêng bạn

Để tạo thanh tiến trình, chúng ta cần làm theo một số bước. Dưới đây là các bước cần thực hiện khi tạo biểu đồ thanh tiến trình.

Bước 1: Tạo hoặc Chèn biểu mẫu Người dùng mới.

Ngay sau khi bạn nhấp vào tùy chọn trên, bạn sẽ thấy một biểu mẫu người dùng như bên dưới.

Bước 2: Nhấn phím F4 để xem cửa sổ thuộc tính VBA.

Trong tab thuộc tính này, chúng ta cần thay đổi các thuộc tính của dạng người dùng VBA mà chúng ta đã chèn.

Bước 3: Thay đổi tên của biểu mẫu người dùng thành UFProgressBar.

Bây giờ chúng ta có thể tham chiếu biểu mẫu người dùng này với tên “UFProgressBar” trong khi viết mã.

Bước 4: Thay đổi Hiển thị Thuộc tính Mô hình của biểu mẫu người dùng thành FALSE.

Bước 5: Bây giờ điều chỉnh căn chỉnh của người dùng để phù hợp với nhu cầu của bạn. Tôi đã thay đổi Chiều cao của biểu mẫu người dùng thành 120 và chiều rộng thành 300.

Bước 6: Thay đổi Chú thích của biểu mẫu người dùng thành “Thanh trạng thái tiến trình”.

Bước 7: Bây giờ từ hộp công cụ của biểu mẫu người dùng, hãy chèn LABEL vào biểu mẫu người dùng ở trên cùng.

Với nhãn này, chúng ta cần thiết lập các thuộc tính của nhãn. Xóa chú thích và để trống và điều chỉnh độ rộng của nhãn.

Bước 8: Thay đổi Tên của nhãn thành “ProgessLabel”.

Bước 9: Bây giờ từ hộp công cụ, lấy khung và vẽ ngay bên dưới nhãn mà chúng ta đã chèn ở các bước trước. Đảm bảo rằng khung nằm ở trung tâm của biểu mẫu người dùng.

Bước 10: Bây giờ chúng ta cần thay đổi một số thuộc tính của Frame để nó trông giống hệt như user form mà chúng ta đã chèn.

Thuộc tính 1: Thay đổi Tên của khung thành “ProgressFrame”.

Thuộc tính 2: Xóa chú thích và để trống.

Thuộc tính 3: Thay đổi Hiệu ứng Đặc biệt của khung thành 6 - fmSpecialEffectBump.

Sau tất cả những thay đổi này, biểu mẫu người dùng của chúng tôi sẽ trông như thế này.

Bước 11: Bây giờ hãy chèn thêm một nhãn nữa. Lần này chèn nhãn ngay bên trong khung mà chúng ta đã chèn.

Trong khi chèn nhãn, hãy đảm bảo rằng mặt trái của nhãn khớp chính xác với khung mà chúng ta đã chèn như trong hình trên.

Bước 12: Sau khi chèn nhãn thay đổi các thuộc tính của nhãn như sau.

Thuộc tính 1: Thay đổi tên của nhãn thành “MainProgressLabel”.

Thuộc tính 2: Xóa chú thích.

Thuộc tính 3: Thay đổi màu nền theo ý muốn của bạn.

Ok, bây giờ chúng ta đã hoàn tất quá trình thiết lập thanh tiến trình và tại thời điểm này, nó sẽ như thế này.

Bây giờ chúng ta cần nhập mã để làm cho điều này hoạt động hoàn hảo.

Bước 13: Để tạo khung công tác, hãy thêm macro bên dưới trong excel.

Mã:

 Sub InitUFProgressBarBar () Với UFProgressBar .Bar.Width = 0 .Text.Caption = "0%" .Hiển thị vbModeless End With 

Lưu ý: “UFProgressBar” là tên được đặt cho Biểu mẫu người dùng và “Thanh” là tên được đặt cho khung mà chúng tôi đã tạo và “Văn bản” là tên được đặt cho nhãn bên trong Khung.

Bây giờ nếu bạn chạy mã này theo cách thủ công hoặc thông qua phím F5, chúng ta sẽ thấy thanh tiến trình như thế này.

Bước 14: Bây giờ chúng ta cần tạo một macro để thực hiện nhiệm vụ của mình. Tôi đang thực hiện nhiệm vụ chèn các số sê-ri từ 1 đến 5000. Cùng với mã này, chúng ta cũng cần định cấu hình biểu đồ thanh tiến trình, mã dưới đây là mã được thiết kế riêng cho bạn.

Mã:

 Sub ProgressBar_Chart () Dim i As Long Dim CurrentUFProgressBar As Double Dim UFProgressBarPercentage As Double Dim BarWidth As Long i = 1 Call InitUFProgressBarBar Do While i <= 5500 Cells (i, 1) .Value = i CurrentUFProgressBar = i / 2500 BarWar = UFProgressBar. Border.Width * CurrentUFProgressBar UFProgressBarPercentage = Round (CurrentUFProgressBar * 100, 0) UFProgressBar.Bar.Width = BarWidth UFProgressBar.Text.Caption = UFProgressBarPercentage & "% Complete" DoEvents i = i + 1 Loop Unload End UFProgressBar 


$config[zx-auto] not found$config[zx-overlay] not found