/ / Progress Indicator az Excel VBA programban

Progress Indicator az Excel VBA-ban

Az alábbiakban egy programot nézünk be Excel VBA amely létrehozza a előrehaladási mutató. A folyamatjelzőt a lehető legegyszerűbb módon tartottuk, mégis professzionálisnak tűnik.

A felhasználói forma, amelyet meg fogunk alkotni, a következőképpen néz ki:

Progress Indicator az Excel VBA-ban

A Userform létrehozásához hajtsa végre a következő lépéseket.

1. Nyissa meg a Visual Basic Editor alkalmazást. Ha a Project Explorer nem látható, kattintson a Nézet, a Project Explorer elemre.

2. Kattintson a Beszúrás, Felhasználóformátum elemre. Ha az Eszköztár nem jelenik meg automatikusan, kattintson a Nézet, Eszköztár elemre. A képernyő beállítása az alábbiak szerint történik.

Userform képernyőbeállítás az Excel VBA-ban

Ez a felhasználási forma csak három vezérlőből áll. Keret vezérlés és két címke vezérlés.

3. Adja hozzá a keretvezérlést. Ehhez kattintson az Eszköztár Keretre kattintva. Ezután húzza át a frame controlt a Userformon. Meg kell változtatnod a képvezérlés néhány tulajdonságát. Jobb egérgombbal kattintson a keretvezérlőre, majd kattintson a Tulajdonságok parancsra. Ürítse ki a Felirat mezőt, állítsa a Magasságot 24-ra és a Szélesség 204-re.

4. Adja hozzá az első címke vezérlőt, és helyezze el a keret vezérlőbe. Jobb egérgombbal kattintson a címke vezérlőjére, majd kattintson a Tulajdonságok parancsra. Módosítsa a nevet a sávra, a VisszaColor-t a kiemelésre, ürítse le a Felirat mezőt, állítsa be a Magasság 20-ra és a szélesség-10 értékre.

5. Adja hozzá a második címke vezérlőt, és helyezze a keretvezérlés fölé. Jobb egérgombbal kattintson a címke vezérlőjére, majd kattintson a Tulajdonságok parancsra. Módosítsa a nevet a Szövegre, és változtassa át a Caption-t "0% Completed" -ra.

6. Módosítsa a Userform feliratát a folyamatjelzőre.

Miután ez befejeződött, az eredménynek összhangban kell lennie a korábban bemutatott Userform képével.

7. Helyezzen egy parancsgombot a munkalapra, és adja hozzá a következő kódot a Userform megjelenítéséhez:

Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

Ha átmentél a másik felhasználói formánpéldák ezen a webhelyen, tudod, hogy itt van az ideje létrehozni a Sub UserForm_Initialize. Ez a Sub automatikusan fut a Userform betöltésekor. Így, ha a Userform metódust használja, a kód automatikusan végrehajtásra kerül. A Sub UserForm_Initialize helyett a Sub UserForm_Activate létrehozása. Az alrész használatával az Excel VBA frissítheti a Userform-ot, hogy bemutassa a makró haladását.

Nyissa meg a Visual Basic Editor alkalmazást.

9. A Project Explorerben kattintson jobb gombbal a UserForm1-re, majd kattintson a Kód megtekintése parancsra.

10. A bal oldali legördülő listáról válassza ki a Userform (Felhasználóformátum) elemet. Válassza az Aktiválás lehetőséget a megfelelő legördülő listából.

11. Adja hozzá a következő kódot:

Private Sub UserForm_Activate()

code

End Sub

Magyarázat: ez az alkönyvtár egy újabb nevű nevű nevet hív össze egy percen belül. Zavaros? A Funkció és a Sub fejezeten keresztül tudhat meg többet a subsről. Ha siet, csak hajtsa végre a következő lépéseket, és jól leszel.

12. Helyezze el az elnevezett kódot egy modulba (a Visual Basic Editorban kattintson a Beszúrás, a Modul lehetőségre). Ez csak egy példa. Ez az a hely, ahol saját kódot adhat hozzá, ha használni szeretné ezt a mutatót a saját makróhoz. A kód a következőképpen néz ki.

Sub code()

Dim i As Integer, j As Integer, pctCompl As Single

Sheet1.Cells.Clear

For i = 1 To 100
    For j = 1 To 1000
        Cells(i, 1).Value = j
    Next j
    pctCompl = i
    progress pctCompl
Next i

End Sub

Magyarázat: először bizonyos változókat inicializálunk. Ezután töröljük a lapot1. Dupla hurkot használunk a munkalap első 100 sorában 1-től 1000-ig terjedő értékek megjelenítéséhez. Ez megtartja az Excel VBA-t egy ideig, és lehetőséget ad arra, hogy megtekinthesse a makró előrehaladását. A pctCompl változó (a százalékos teljesítés rövidítése) a makró haladását méri. Végül egy újabb elnevezett előjelet hívunk, és átadjuk a pctCompl változó értékét a Userform frissítéséhez. Így láthatjuk a makró fejlődését!

13. Adjon hozzá egy másik előtagot. A kód a következőképpen néz ki:

Sub progress(pctCompl As Single)

UserForm1.Text.Caption = pctCompl & "% Completed"
UserForm1.Bar.Width = pctCompl * 2

DoEvents

End Sub

Magyarázat: Az első kódsor megváltoztatja az első címke vezérlőjének feliratát. A második kódsor megváltoztatja a második címke vezérlés szélességét. Add hozzá a DoEvents-t a Userform frissítéséhez.

14. Lépjen ki a Visual Basic Editorból, és kattintson a parancs gombra a lapon:

Eredmény:

Előrehaladási mutató eredménye

Jegyzet: ehhez a makróhoz az i változót használtam az előrehaladás mérésére. Például a 11. sorban 10% befejeződött. Ez eltérhet a makrójától. A pctCompl változó értékének áthaladásának technikája a felhasználói formátum frissítéséhez az al progresszióra változatlan marad.

Szintén olvasható: