Pasek postępu VBA - Utwórz wykres słupkowy postępu za pomocą kodu VBA

Pasek postępu programu Excel VBA w programie Excel

Pasek postępu to coś, co pokazuje nam, ile procesu zostało zrobione lub zakończone, gdy uruchamiamy duże zestawy kodów, które wymagają więcej czasu na wykonanie, używamy paska postępu w VBA, aby pokazać użytkownikowi o stanie procesu, lub jeśli jeśli w jednym kodzie działa wiele procesów, używamy paska postępu, aby pokazać, który proces się rozwinął.

Pasek postępu pokazuje procent ukończonych zadań, gdy rzeczywiste zadanie jest uruchomione za ekranem z zestawem instrukcji podanych przez kod.

Gdy wykonanie kodu VBA zajmuje dużo czasu, użytkownik martwi się, jak szybko może się zakończyć. Domyślnie na wykonanie zadania musimy czekać cały czas, ale wstawiając pasek postępu poznajemy postęp kodu VBA.

W prawie każdym programie komputerowym widzimy pasek postępu, który pokazuje postęp zadania, które wykonujemy, tak jak na poniższym obrazku.

W Excelu możemy stworzyć pasek postępu za pomocą kodowania VBA. Jeśli kiedykolwiek zastanawiałeś się, jak możemy stworzyć pasek postępu, to jest to artykuł stworzony dla Ciebie.

Utwórz własny pasek postępu

Aby utworzyć pasek postępu, musimy wykonać kilka kroków. Poniżej znajdują się kroki, które należy wykonać podczas tworzenia wykresu słupkowego postępu.

Krok 1: Utwórz lub wstaw nowy formularz użytkownika.

Gdy tylko klikniesz powyższą opcję, zobaczysz formularz użytkownika podobny do poniższego.

Krok 2: Naciśnij klawisz F4 , aby wyświetlić okno właściwości VBA.

W tej zakładce właściwości musimy zmienić właściwości wstawionego przez nas formularza użytkownika VBA.

Krok 3: Zmień nazwę formularza użytkownika na UFProgressBar.

Teraz możemy odnieść się do tego formularza użytkownika z nazwą „UFProgressBar” podczas kodowania.

Krok 4: Zmień właściwość Pokaż model formularza użytkownika na FALSE.

Krok 5: Teraz dostosuj ustawienie użytkownika do swoich potrzeb. Zmieniłem wysokość formularza użytkownika na 120 i szerokość na 300.

Krok 6: Zmień podpis formularza użytkownika na „Pasek stanu postępu”.

Krok 7: Teraz z przybornika formularza użytkownika wstaw LABEL do formularza użytkownika na górze.

W przypadku tej etykiety musimy ustawić właściwości etykiety. Usuń podpis i wyczyść go, a następnie dostosuj szerokość etykiety.

Krok 8: Zmień nazwę etykiety na „ProgessLabel”.

Krok 9: Teraz z przybornika weź ramkę i narysuj tuż pod etykietą, którą wstawiliśmy w poprzednich krokach. Upewnij się, że ramka znajduje się w środku formularza użytkownika.

Krok 10: Teraz musimy zmienić niektóre właściwości ramki, aby wyglądała dokładnie tak samo, jak wstawiony przez nas formularz użytkownika.

Właściwość 1: Zmień nazwę ramki na „ProgressFrame”.

Właściwość 2: Usuń podpis i pozostaw go pustym.

Właściwość 3: Zmień efekt specjalny ramki na 6 - fmSpecialEffectBump.

Po tych wszystkich zmianach nasz formularz użytkownika powinien wyglądać tak.

Krok 11: Teraz wstaw jeszcze jedną etykietę. Tym razem umieść etykietę tuż wewnątrz wstawionej przez nas ramki.

Podczas wkładania etykiety upewnij się, że lewa strona etykiety dokładnie pasuje do wstawionej przez nas ramki, jak pokazano na powyższym obrazku.

Krok 12: Po wstawieniu etykiety zmień właściwości etykiety w następujący sposób.

Właściwość 1: zmień nazwę etykiety na „MainProgressLabel”.

Właściwość 2: Usuń podpis.

Właściwość 3: Zmień kolor tła zgodnie z życzeniem.

Ok, teraz skończyliśmy proces ustawiania paska postępu iw tym momencie wygląda to tak.

Teraz musimy wprowadzić kody, aby działało to idealnie.

Krok 13: Aby utworzyć strukturę, dodaj poniższe makro w programie Excel.

Kod:

Sub InitUFProgressBar () With UFProgressBar .Bar.Width = 0 .Text.Caption = "0%" .Show vbModeless End With
Uwaga: „UFProgressBar” to nazwa nadana formularzowi użytkownika, a „pasek” to nazwa nadana ramce, którą utworzyliśmy, a „tekst” to nazwa nadana etykiecie wewnątrz ramki.

Teraz, jeśli uruchomisz ten kod ręcznie lub za pomocą klawisza F5, powinniśmy zobaczyć taki pasek postępu.

Krok 14: Teraz musimy stworzyć makro, aby wykonać nasze zadanie. Wykonuję zadanie wstawiania numerów seryjnych od 1 do 5000. Wraz z tym kodem musimy również skonfigurować pasek postępu, tzw. Thew code to kod szyty na miarę dla Ciebie.

Kod:

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 BarWidth. Border.Width * CurrentUFProgressBar UFProgressBarPercentage = Round (CurrentUFProgressBar * 100, 0) UFProgressBar.Bar.Width = BarWidth UFProgressBar.Text.Caption = UFProgressBarPercentage & "% Complete" DoEvents i = iBar + 1

Interesujące artykuły...