Команды, функции и состояния Excel

Относится к: Excel 2013 | Office 2013 | Visual Studio

Microsoft Excel распознает два очень разные типа дополнительных функциональных возможностей: команды и функции.

Команды

В Excel команды имеют следующие свойства:

  • Выполняют действия так же, как и пользователи.

  • Могут делать все, что может пользователь (в зависимости от ограничений используемого интерфейса), например изменять параметры Excel, открывать, закрывать и редактировать документы, выполнять пересчеты и т. д.

  • Могут вызываться, когда происходят определенные обрабатываемые события.

  • Могут отображать диалоговые окна и взаимодействовать с пользователем.

  • Могут вызываться при выполнении определенных действиях с объектом, например щелчке левой кнопкой мыши.

  • Они никогда не вызываются программой Excel во время пересчета.

  • Они не вызываются функциями во время пересчета.

Функции

В Excel функции имеют следующие свойства:

  • Как правило, принимают аргументы и всегда возвращают результат.

  • Могут вводиться в одну или несколько ячеек в составе формулы Excel.

  • Могут использоваться в определениях определенных имен.

  • Могут использоваться в выражениях лимитов и порогов условного форматирования.

  • Могут вызываться командами.

  • Не могут вызывать команды.

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

Функции листа

В Excel функции листа имеют следующие свойства:

  • Не имеют доступа к информационным функциям листа макросов.

  • Не могут получать значения невычисленных ячеек.

  • Могут записываться и регистрироваться как потокобезопасные, начиная с Excel 2007.

Функции листа макросов

В Excel функции листа макросов имеют следующие свойства:

  • Имеют доступ к информационным функциям листа макросов.

  • Могут получать значения невычисленных ячеек, в том числе значения вызывающих ячеек.

  • Не считаются потокобезопасными, начиная с Excel 2007.

То, как Excel обрабатывает пользовательскую функцию (user-defined function, UDF), что позволяет ей делать и как пересчитывает, определяется при регистрации. Если функция зарегистрирована как функция листа, но пытается выполнить неразрешенное действие, произойдет ошибка. Начиная с Excel 2007, если функция листа, зарегистрированная как потокобезопасная, пытается вызвать функцию листа макросов, происходит ошибка.

Excel обрабатывает функции UDF Microsoft Visual Basic для приложений как функции листа макросов, в том плане, что они имеют доступ к информации рабочей области и значению невычисленных ячеек, и не считаются потокобезопасными, начиная с Excel 2007.

Состояния Excel

Excel может находится в одном из нескольких состояний в любое время в зависимости от действий пользователя, внешнего процесса, обработанного события, запустившего макрос, или запланированного события, такого как Автосохранение.

Ниже описаны возможные состояния.

  • Состояние готовности: ни команды, ни макросы не выполняются. Диалоговые окна не отображаются. Ячейки не редактируются. Пользователь не вырезал/не скопировал объект для вставки. Внедренные объекты не находятся в фокусе.

  • Режим правки: пользователь начал вводить допустимые символы в незаблокированную или незащищенную ячейку, или нажал клавишу F2 для одной или нескольких незаблокированных или незащищенных ячеек.

  • Режим вырезания/копирования и вставки: пользователя вырезал или скопировал ячейку или ряд ячеек и еще не вставил их или вставил с помощью диалогового окна "Специальная вставка", позволяющего выполнять несколько операций вставки.

  • Режим указания: пользователь редактирует формулу и выбирает ячейки, адреса которых будут добавлены в редактируемую формулу.

Пользователь может выйти из режима редактирования, указания, вырезания или копирования, нажав клавишу ESC, которая возвращает Excel в состояние готовности. Другие события также могут вывести Excel из этих состояний:

  • Пользователь открывает встроенное диалоговое окно.

  • Пользователь инициирует пересчет.

  • Пользователь выполняет команду.

  • Excel выполняет операцию Автосохранение.

  • Обработано событие-таймер.

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

См. также

Понятия, связанные с программированием для Excel

Разрешение прерывания длительных операций пользователем