Tạo thanh progress bar cho excel

Nhiều lúc chạy vòng lặp lớn nhìn cái excel chạy mà thấy mòn mỏi và không biết khi nào nó xong. Cảm giác lúc đó ức chế vô cùng, nhiều khi vội còn điên tiết hơn nữa.
Để thân thiện và dễ chịu hơn thì dùng một Progress bar cho nó chạy và hiển thị việc mình làm được bao nhiêu phần trăm.


Bước 1: Tạo form làm Progress bar
  • Tạo một form với tên là userfrom1 (nếu đặt tên khác thì phải sửa lại code cho phù hợp)
  • Đổi caption của nó thành Progress Indicator (hoặc cái gì tùy thích)
Bước 2: Vẽ một frame
  • Caption = Xóa trống
  • Height = 24
  • Width = 204
Bước 3: Vẽ 2 label vào trong frame đã tạo ở trên và sắp xếp lại cho hợp lý

Label 1: 
  • Name = Bar
  • Backcolor = highlight
  • width = 10
  • height = 20
  • Caption = xóa trống
Label 2:
  • Name = Text
  • Backstyle = 0 - fmBackstyleTransparent
  • Caption = 0% Completed
  • Height = 20
  • Width = 72
Bước 4: Code chạy Progress bar

Public Sub progress(pctCompl As Single)
    UserForm1.Text.Caption = pctCompl & "% Completed"
    UserForm1.Bar.Width = pctCompl * 2
    DoEvents
End Sub

Bước 5: Áp dụng vào thực tế

Sub test()
    Dim i As Long, last As Long
    Dim pctCompl As Single
    last = 110000
  
    'show progress bar form
    UserForm1.Show vbModeless
    For i = 1 To last
  
    '...
  
    pctCompl = Int(i * 100 / last)
    progress pctCompl
    Next i
  
    'close progress bar form
    Unload UserForm1
End Sub

Bonus: Chỉnh vị trí hiển thị form theo sở thích của mình Nhấp đúp chuột vào form và dán đoạn code sau vào và sau đó cân chỉnh theo ý của mình

Private Sub UserForm_Initialize()
    Me.StartUpPosition = 0
    Me.Top = Application.Top + 45
    Me.Left = Application.Left + Application.Width - Me.Width - 25
End Sub

Đăng nhận xét

2 Nhận xét

  1. Báo lỗi chỗ progress trong sub test thì chỉnh sao được anh

    Trả lờiXóa
    Trả lời
    1. Nếu làm theo ví dụ thì chữ last bạn cần khai báo biến nhé

      Xóa