Как правило, при создании макроса одним из первых действий является использование команды, отключающей обновление экрана. Это сделано потому, что макрос будет работать быстрее, когда ему не нужно обновлять экран. Когда это будет сделано, одна из самых важных вещей, которую вы можете сделать, — это предоставить пользователю обратную связь, чтобы он не подумал, что его система вышла из строя.

Обычный метод обратной связи — использование строки состояния. Используя VBA, это делается с помощью строки кода, подобной следующей:

Application.StatusBar = "Updating past months..."

Эта строка вызывает отображение сообщения Обновление прошлых месяцев …​__ в строке состояния прикладной программы. Это сообщение остается там до тех пор, пока другое сообщение не будет записано в строку состояния вашим макросом или Excel.

Если вы хотите удалить сообщение в строке состояния, вы можете сделать это двумя способами. Первый — записать пустую строку в строку состояния, как в следующем коде:

Application.StatusBar = ""

В этом случае между кавычками ничего нет, поэтому в строке состояния отображается пустая строка, стирающая все, что было раньше. Другой способ — использовать следующую строку:

Application.StatusBar = False

Запись логического значения FALSE в свойство Application.StatusBar стирает все, что вы написали в строке состояния ранее, и восстанавливает текст строки состояния по умолчанию.

Использование строки состояния — это нормально, пока строка состояния включена. Пользователь может настроить Excel так, чтобы строка состояния была отключена. Если это было сделано, вы не сможете отображать сообщения в строке состояния. Решение состоит в том, чтобы убедиться, что строка состояния включена, прежде чем пытаться отобразить сообщение.

Вы можете управлять отображением строки состояния с помощью свойства Application.DisplayStatusBar. Если вы установите для этого свойства логическое значение (TRUE или FALSE), оно включает или выключает строку состояния.

В качестве примера программирования такого рода процессов рассмотрим следующий код:

bStatusState = Application.DisplayStatusBar Application.DisplayStatusBar = True Application.StatusBar = "Updating past months..."

' ' Rest of program goes in here ' Application.StatusBar = False Application.DisplayStatusBar = bStatusState

Самая первая строка этого кода присваивает текущее значение строки состояния (ИСТИНА или ЛОЖЬ, что означает включено или выключено) переменной bStatusState.

Эта же переменная используется в последней строке для сброса состояния строки состояния в исходное состояние. Между ними включается строка состояния, и отображается сообщение, которое позже стирается.

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

Этот совет (2296) относится к Microsoft Excel 97, 2000, 2002 и 2003. Вы можете найти версию этого совета для ленточного интерфейса Excel (Excel 2007 и новее) здесь:

link: / excelribbon-Using_the_Status_Bar [Использование строки состояния].