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