Макросы часто создаются для обработки данных, и обработка данных может занять много времени. Из-за этого некоторые пользователи могут подумать, что их компьютер перестал отвечать, даже если макрос занят, выполняя назначенную ему задачу.

Решение для большинства разработчиков макросов — каким-то образом предупреждать пользователей о ходе выполнения макроса. В Excel есть два способа сделать это. Самый простой и распространенный подход — использовать строку состояния, чтобы указать, что делает макрос. Все, что вам нужно сделать, это собрать строку, содержащую сообщение о состоянии, а затем назначить эту строку свойству StatusBar объекта Application, как показано здесь:

sStatus = "Processing Input File - Please Be Patient"

Application.StatusBar = sStatus

Сообщение остается в строке состояния, пока вы не замените его другим сообщением. Вы также можете указать прогресс в цикле, указав процент завершения:

For x = 1 to y     Application.StatusBar = Format(x/y,"0.0%") & " Complete"

' Other coding here Next

Когда ваша процедура завершится, верните строку состояния в нормальное состояние с помощью следующего оператора:

Application.StatusBar = False

Если вы предпочитаете разработать фактический индикатор выполнения для макроса, вы можете сделать это, создав пользовательскую форму, а затем обновив форму для отображения «шкалы процентов» или какого-либо другого визуального индикатора. Вы можете найти пример такого индикатора прогресса по этому адресу:

https://www.excel-easy.com/vba/examples/progress-indicator.html

_Примечание: _

Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.

link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера].

ExcelTips — ваш источник экономичного обучения Microsoft Excel.

Этот совет (8969) применим к Microsoft Excel 2007, 2010, 2013, 2016, 2019 и Excel в Office 365. Вы можете найти версию этого совета для старого интерфейса меню Excel здесь:

link: / excel-Progression_Indicator_in_a_Macro [Индикатор прогресса в макросе].