/ Excel VBA’da / Progress Indicator

Excel VBA'daki İlerleme Göstergesi

Aşağıda bir programa bakacağız Excel VBA Bu bir oluşturur Ilerleme göstergesi. İlerleme göstergesini mümkün olduğunca basit tuttuk, ancak profesyonel görünüyor. Hazır mısınız?

Oluşturulacak olan Userform aşağıdaki gibi görünür:

Excel VBA'daki İlerleme Göstergesi

Bu Kullanıcı Formunu oluşturmak için aşağıdaki adımları uygulayın.

1. Visual Basic Düzenleyicisi'ni açın. Proje Gezgini görünmüyorsa, Görüntüle, Proje Gezgini'ni tıklatın.

2. Ekle, Kullanıcı formu'nu tıklayın. Araç Kutusu otomatik olarak görünmezse, Görünüm, Araç Kutusu'nu tıklatın. Ekranınız aşağıdaki gibi ayarlanmalıdır.

Excel VBA'da Kullanıcı Formu Ekranı Kurulumu

Bu Userform sadece üç kontrolten oluşur. Bir çerçeve kontrolü ve iki etiket kontrolü.

3. Çerçeve kontrolünü ekleyin. Bunu, Araç Kutusu'ndan Kare'ye tıklayarak yapabilirsiniz. Ardından, Userform üzerinde bir çerçeve kontrolünü sürükleyebilirsiniz. Bu çerçeve kontrolünün bazı özelliklerini değiştirmeniz gerekir. Çerçeve kontrolüne sağ tıklayın ve ardından Özellikler'e tıklayın. Başlık alanını boşaltın, Yüksekliği 24 ve Genişliği 204 olarak ayarlayın.

4. İlk etiket kontrolünü ekleyin ve Frame kontrolüne yerleştirin. Etiket kontrolüne sağ tıklayın ve ardından Özellikler'e tıklayın. İsmi Çubuk olarak değiştirin, Vurgulamak için BackColor, Başlık alanını boşaltın, Yüksekliği 20'ye ve Genişliği 10'a ayarlayın.

5. İkinci etiket kontrolünü ekleyin ve Frame kontrolünün üzerine yerleştirin. Etiket kontrolüne sağ tıklayın ve ardından Özellikler'e tıklayın. İsmi Metin olarak değiştirin ve Altyazıyı "Tamamlanan% 0" olarak değiştirin.

6. Kullanıcı formunun İlerleme Göstergesi başlığını değiştirin.

Bu tamamlandıktan sonra sonuç, daha önce gösterilen Kullanıcı Formunun resmi ile tutarlı olmalıdır.

7. Çalışma sayfanıza bir komut düğmesi yerleştirin ve Kullanıcı Formunu göstermek için aşağıdaki kod satırını ekleyin:

Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

Diğer Kullanıcı Formunu geçtiysenizBu sitedeki örnekler, bunun Sub UserForm_Initialize'yi oluşturma zamanı olduğunu biliyorsunuz. Bu Sub, Kullanıcı formu yüklendiğinde otomatik olarak çalışır. Böylece, Userform için Show yöntemini kullandığınızda, kod otomatik olarak yürütülür. Sub UserForm_Initialize yerine, Sub UserForm_Activate'yi oluştururuz. Bu alt kullanılarak, Excel VBA, Makro'nun ilerlemesini göstermek için Kullanıcı Formunu güncelleyebilir.

8. Visual Basic Düzenleyicisi'ni açın.

9. Proje Gezgini'nde, UserForm1'e sağ tıklayın ve ardından Kodu Görüntüle'ye tıklayın.

10. Soldaki açılır listeden Userform'u seçin. Sağdaki açılır listeden Etkinleştir'i seçin.

11. Aşağıdaki kod satırını ekleyin:

Private Sub UserForm_Activate()

code

End Sub

Açıklama: Bu alt, bir dakika içinde oluşturacağımız bir başka alt kod çağırır. Şaşkın? Sub hakkında daha fazla bilgi için Fonksiyon ve Alt bölümümüzü inceleyebilirsiniz. Aceleniz varsa, sadece aşağıdaki adımları uygulayın ve iyi olacaksınız.

12. Alt adlı kodu bir modüle yerleştirin (Visual Basic Düzenleyicisi'nde, Ekle, Modül'ü tıklatın). Bu sadece bir örnektir. Kendi makro için bu ilerleme göstergesini kullanmak istediğinizde kendi kodunuzu ekleyeceğiniz yer burasıdır. Kod aşağıdaki gibi görünüyor.

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

Açıklama: İlk olarak, bazı değişkenleri başlatıyoruz. Ardından, sayfa 1'i temizledik. Çalışma sayfasının ilk 100 satırında 1 ile 1000 arasındaki değerleri göstermek için çift döngü kullanırız. Bu, Excel VBA'yı bir süre meşgul edecek ve bize makrodaki ilerlemeyi görme fırsatı veriyor. PctCompl değişkeni (Yüzdelik için kısaltılmış), makrodaki ilerlemeyi ölçer. Son olarak, ilerleyen adın bir alt altını çağırır ve Kullanıcı Formunu güncellemek için pctCompl değişkeninin değerini iletiriz. Bu şekilde makronun ilerleyişini görebiliriz!

13. İlerleme adında başka bir alt ekleyin. Kod aşağıdaki gibi görünür:

Sub progress(pctCompl As Single)

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

DoEvents

End Sub

Açıklama: İlk kod satırı, ilk etiket denetiminin başlığını değiştirir. İkinci kod satırı, ikinci etiket kontrolünün genişliğini değiştirir. Kullanıcı formunu güncellemek için DoEvents ekleyin.

14. Visual Basic Düzenleyicisi'nden çıkın ve sayfadaki komut düğmesine tıklayın:

Sonuç:

İlerleme Göstergesi Sonuç

Not: Bu makro için, ilerlemeyi ölçmek için i değişkenini kullandık. Örneğin, sıra 11'de% 10 tamamlandı. Bu, makronuz için farklı olabilir. Kullanıcı formunu güncellemek için pctCompl değişkeninin değerini alt ilerlemeye geçirme tekniği aynı kalır.

Ayrıca oku: