Как отобразить индикатор выполнения в настраиваемой форме в Excel

Поддержка Office 2003 завершена

8 апреля 2014 г. корпорация Майкрософт прекратила поддержку Office 2003. Это повлияло на обновления программного обеспечения и параметры безопасности. Узнайте, что это значит для вас и какие меры по безопасности можно предпринять.

ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.

Эта статья на английском языке:211736
Microsoft Excel 97 версии этой статьи см. 170782.

В статье автор идеи: Иван Walkenbach
Аннотация
При наличии Visual Basic для приложений Microsoft, макрос, который занимает много времени для завершения может потребоваться предоставить пользователю сведения о том, что макрос работает должным образом. В данной статье описывается создание индикатора хода выполнения с пользователем формы в Microsoft Excel.
Дополнительная информация
Корпорация Майкрософт предлагает примеры программного кода только для иллюстрации без гарантии или подразумеваемой. Это включает, но не ограничивается, подразумеваемые гарантии товарности или пригодности для определенной цели. В данной статье предполагается, что вы знакомы с языком программирования, рассчитаны и со средствами, которые используются для создания и отладки. Сотрудники службы поддержки Майкрософт могут пояснить конкретной процедуры. Тем не менее они не изменять эти примеры для обеспечения функциональных возможностей или удовлетворения конкретных требований.

Создание настраиваемой формы

В следующем примере подпрограмма Visual Basic заполняет большой диапазонслучайное число ячеек. Индикатор показывает, что макрос выполняетсяправильно.
  1. Откройте новую книгу в Microsoft Excel.
  2. Microsoft Office Excel 2003 и более ранних версиях Excel нажмите кнопку Сервис, выберите пункт Макрос, а затем нажмите кнопку Редактор Visual Basic.

    В Excel 2007 Microsoft Office Visual Basic в Код Группировать по Разработчик Вкладка.

    Примечание Для отображения Разработчик вкладки на ленте, выполните следующие действия:
    1. Excel 2007, выберите пункт Кнопка Microsoft Office, а затем нажмите кнопку Параметры Excel.
    2. В Параметры Excel диалоговое окно, нажмите кнопку Популярныеи выберите пункт Показывать вкладку "Разработчик" на ленте флажок.
  3. На Вставка меню, нажмите кнопку Пользовательская форма.
  4. Рисование Метка элемент управления на форму.
  5. Изменение следующих свойств Метка Управление следующие значения:
       Property        Value   --------------------------------------------   Caption         Now updating. Please wait...					
    Примечание Если Свойства окно не отображается, нажмите кнопку Окно свойств на Представление меню.
  6. Рисование Рамка элемент управления на форму.
  7. Изменение следующих свойств Рамка Управление следующие значения:
           Property        Value   -----------------------------   Name            FrameProgress					
  8. Рисование Метка управлять Рамка элемент управления.
  9. Изменение следующих свойств Метка Управление следующие значения:
        Property        Value    -------------------------------------    Name            LabelProgress    BackColor       &H000000FF&    SpecialEffect   fmSpecialEffectRaised					

Введите код макроса

  1. Дважды щелкните настраиваемую форму, чтобы открыть Код окно формы пользователем.
  2. В модуле введите следующий код для UserForm_Activate событие:
    Private Sub UserForm_Activate()    ' Set the width of the progress bar to 0.    UserForm1.LabelProgress.Width = 0    ' Call the main subroutine.    Call MainEnd Sub					
  3. На Вставка меню, нажмите кнопку Модуль.
  4. В Код окно модуля введите следующий код:
    Sub ShowUserForm()    UserForm1.ShowEnd SubSub 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 UserForm1End SubSub 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.    DoEventsEnd Sub					
  5. Вернуться в Excel.
  6. В Excel 2003 и более ранних версиях Excel выберите пункт Макрос на Сервис меню, а затем нажмите кнопку Макросы.

    В Excel 2007 нажмите кнопку Макросы в Код Группировать по Разработчик Вкладка.
  7. В Макрос диалоговое окно, выберите ShowUserForm, а затем нажмите кнопку Запуск.
Появится диалоговое окно, которое имеет красный индикатор. Увеличивается по мере увеличения индикатора хода выполненияв Основной Подпрограмма заполняет ячейки на листе.

В ShowUserForm Подпрограмма показывает форму. Процедура, к которой присоединена Активация пользователь вызывает событие Основной Подпрограмма. В Основной Подпрограмма заполняет ячейки случайными числами. Кроме того, вызывает подпрограмму UpdateProgressBar подпрограмма, которая обновляет Метка элемент управления на форму.

Примечание При использовании этого метода макроса занимает лишь немного больше времени, для завершения задач.
XL2000 xl2002 XL2003 XL2007 XL2010

Внимание! Эта статья переведена автоматически

Свойства

Номер статьи: 211736 — последний просмотр: 02/01/2012 23:17:00 — редакция: 1.0

Microsoft Office Excel 2007, Microsoft Excel 2002 Standard Edition, Microsoft Excel 2000 Standard Edition, Microsoft Office Excel 2003, Microsoft Excel 2010

  • kbinfo kbexpertisebeginner kbcode kbhowto kbmacro kbmt KB211736 KbMtru
Отзывы и предложения