Makale numarası: 211736 - Son Gözden Geçirme: 01 Şubat 2012 Çarşamba - Gözden geçirme: 1.0

Excel'de bir ilerleme çubuğu ile bir kullanıcı form görüntüleme

Sistem İpucuBu makale, kullandığınızdan farklı bir işletim sistemine yöneliktir. Sizinle ilgili olmayabilecek makale içeriği devre dışı bırakıldı.
Bu makalenin Microsoft Excel 97 sürümü için bkz: 170782  (http://support.microsoft.com/kb/170782/ ) .

Fikir tarafından gönderilen makale: John Walkenbach

Bu Sayfada

Hepsini aç | Hepsini kapa

Özet

Bir Microsoft Visual Basic for Applications makrosu tamamlanması zaman alıyor varsa, makroyu doğru sürdüğünü göstergesi kullanıcıya vermek isteyebilirsiniz. Bu makalede, Microsoft Excel'de bir kullanıcı form ile bir ilerleme çubuğu oluşturma.

Daha fazla bilgi

Microsoft, programlama örneklerini yalnızca gösterim garanti olmadan sağlar. Bu içerir, ancak, satılabilirlik veya belirli bir amaca uygunluk zımni garantileri sınırlı değildir. Bu makale, gösterilen programlama dilini ve oluşturmak ve yordamlar hata ayıklamak için kullanılan araçlar ile bilgi sahibi olduğunuzu varsayar. Microsoft destek mühendisleri, belirli bir yordamın işlevselliğinin açıklanmasına yardımcı olabilir. Ancak, bunlar işlevsellik sağlamak veya yordamlar, belirli gereksinimlerinizi karşılayacak şekilde geliştirmek amacıyla bu örnekleri değiştirmezler.

Kullanıcı formu oluşturma

Aşağıdaki örnekte, Visual Basic yordam büyük bir alanı doldurur. rasgele bir sayı içeren hücreleri. Makro çalışıyor gösterir göstergesi doğru.
  1. Excel'de yeni bir çalışma kitabı açın.
  2. Microsoft Office Excel 2003'te ve Excel'in önceki sürümlerinde tıklatın Araçlar, işaret Makrove ardından Visual Basic Düzenleyicisi.

    Microsoft Office Excel 2007'yi tıklatın. Visual Basic içinde Kodu Grup hakkında Geliştirici sekmesini tıklatın.

    Not Görüntülemek için Geliştirici Şerit'te sekmesinde, aşağıdaki adımları izleyin:
    1. Tıklatın, Excel 2007'yi başlatın Microsoft Office düğmesive ardından Excel Seçenekleri.
    2. İçinde Excel Seçenekleri iletişim kutusunda'ı tıklatın Popülerve seçmek için tıklatın Şeritte Geliştirici sekmesini göster onay kutusunu seçin.
  3. Üzerinde Ekle menüsünde,'ı tıklatın UserForm.
  4. Çizme bir Etiket kullanıcı form üzerinde kontrol eder.
  5. Aşağıdaki özelliklerini değiştirme Etiket için kontrol Aşağıdaki değerler:
       Property        Value
       --------------------------------------------
       Caption         Now updating. Please wait...
    					
    Not Varsa Özellikler pencere görünür değil,'ı tıklatın Özellikler penceresi üzerinde Görünüm menü.
  6. Çizme bir Çerçeve kullanıcı form üzerinde kontrol eder.
  7. Aşağıdaki özelliklerini değiştirme Çerçeve için kontrol Aşağıdaki değerler:
        
       Property        Value
       -----------------------------
       Name            FrameProgress
    					
  8. Çizme bir Etiket üzerinde kontrol Çerçeve Denetim.
  9. Aşağıdaki özelliklerini değiştirme Etiket için kontrol Aşağıdaki değerler:
        Property        Value
        -------------------------------------
        Name            LabelProgress
        BackColor       &H000000FF&
        SpecialEffect   fmSpecialEffectRaised
    					

Makro kodunu yazın

  1. Kullanıcı formunu açmak için çift tıklatın Kodu kullanıcı form penceresi.
  2. Modüle aşağıdaki kodu yazın UserForm_Activate olay:
    Private Sub UserForm_Activate()
        ' Set the width of the progress bar to 0.
        UserForm1.LabelProgress.Width = 0
    
        ' Call the main subroutine.
        Call Main
    End Sub
    					
  3. Üzerinde Ekle menüsünde,'ı tıklatın Modülü.
  4. İçinde Kodu Modül penceresinde aşağıdaki kodu yazın:
    Sub ShowUserForm()
        UserForm1.Show
    End Sub
    
    Sub Main()
        Dim Counter As Integer
        Dim RowMax As Integer, ColMax As Integer
        Dim r As Integer, c As Integer
        Dim PctDone As Single
    
        Application.ScreenUpdating = False
        ' Initialize variables.
        Counter = 1
        RowMax = 100
        ColMax = 25
    
        ' Loop through cells.
        For r = 1 To RowMax
            For c = 1 To ColMax
                'Put a random number in a cell
                Cells(r, c) = Int(Rnd * 1000)
                Counter = Counter + 1
            Next c
    
            ' Update the percentage completed.
            PctDone = Counter / (RowMax * ColMax)
    
            ' Call subroutine that updates the progress bar.
            UpdateProgressBar PctDone
        Next r
        ' The task is finished, so unload the UserForm.
        Unload UserForm1
    End Sub
    
    Sub UpdateProgressBar(PctDone As Single)
        With UserForm1
    
            ' Update the Caption property of the Frame control.
            .FrameProgress.Caption = Format(PctDone, "0%")
    
            ' Widen the Label control.
            .LabelProgress.Width = PctDone * _
                (.FrameProgress.Width - 10)
        End With
    
        ' The DoEvents allows the UserForm to update.
        DoEvents
    End Sub
    					
  5. Excel'e geri dönün.
  6. Excel 2003'te ve Excel'in önceki sürümlerinde, işaret Makro üzerinde Araçlar menüsünü ve sonra Makrolar.

    Excel 2007'de,'ı tıklatın. Makrolar içinde Kodu Grup hakkında Geliştirici sekmesini tıklatın.
  7. İçinde Makro iletişim kutusunda, seçmek için tıklatın ShowUserFormve ardından Çalıştır.
Kırmızı ilerleme çubuğu içeren bir iletişim kutusu görüntülenir. İlerleme çubuğu olarak artırır , Ana çalışma sayfasındaki hücreleri altyordamını doldurur.

, ShowUserForm yordam kullanıcı formu gösterir. Bağlı olduğu yordamı Etkinleştirme Olay, kullanıcı form çağrıların Ana alt yordam. , Ana alt yordam hücrelerin rasgele sayılarla doldurur. Ayrıca, alt yordam çağrıları UpdateProgressBar güncelleştirmeleri altyordamını Etiket kullanıcı form üzerinde kontrol eder.

Not Bu tekniği kullandığınızda, makronuzun hedeflenen görevlerinin tamamlanması için sadece biraz uzun sürer.

Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Office Excel 2007
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Excel 2000 Standard Edition
  • Microsoft Office Excel 2003
  • Microsoft Excel 2010
Anahtar Kelimeler: 
kbinfo kbexpertisebeginner kbcode kbhowto kbmacro kbmt KB211736 KbMttr
Otomatik TercümeOtomatik Tercüme
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:211736  (http://support.microsoft.com/kb/211736/en-us/ )