Перейти к основному контенту
Office

Создание настраиваемых и контекстных меню с помощью макросов

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

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

Чтобы создать меню с помощью макросов, выполните три основные действия.

  1. Создайте объект макроса с вложенными макросами, содержащими команды меню.

  2. Создайте другой объект макроса, который создает само меню.

  3. ПриСоединение меню к элементу управления, форме, отчету или базе данных в целом.

Эти действия подробно описаны в следующих разделах.

Примечание: Используете ли вы Access 2007? Если да, перейдите к разделу Создание настраиваемых контекстных меню в Access 2007.

Совет: Если вы хотите узнать, как создавать пользовательские контекстные меню в Access с помощью кода Visual Basic для приложений (VBA), ознакомьтесь со статьей Создание контекстного меню для формы, элемента управления формы или отчета.

Шаг 1: создание объекта макроса с вложенными макросами, содержащими команды меню

На этом этапе вы создаете объект макроса с вложенными макросами, каждый из которых будет отдельной командой контекстного меню.

Что такое вложенный макрос?

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

  1. На вкладке Создание в группе Макросы и код нажмите кнопку Макрос.

  2. Для каждой команды, которую вы хотите использовать в настраиваемом контекстном меню, выполните указанные ниже действия.

    1. В окне конструктора макросов добавьте макрос "вложенный макрос" и присвойте подэлементу имя, которое будет отображаться в контекстном меню (например, "Печать" или "Обновить").

      Совет: Чтобы создать клавишу доступа для выбора команды с помощью клавиатуры, введите амперсанд (_Амп_) перед буквой, которую вы хотите использовать в качестве клавиши доступа, в имени команды (например, "_Амп_рефреш"). Это письмо будет подчеркнуто в меню.

    2. В подмакросе выберите первое действие, которое вы хотите выполнить, выбери команду в контекстном меню.

    3. Если при выборе этой команды требуется выполнить дополнительные действия, добавьте их в один и тот же вложенный макрос как отдельные макрокоманды.

  3. Сохраните и назовите объект макроса например, мкршорткутменукоммандс.

    На приведенном ниже рисунке показан пример объекта макроса с тремя вложенными макросами для настраиваемого меню или контекстного меню.

    Снимок экрана: окно конструктора макросов Access с тремя инструкциями макросов.

Действие 2: создание второго объекта макроса, который создает меню

Этот этап может казаться избыточным, но для создания контекстного меню из объекта макроса, созданного на этапе 1, необходимо создать второй объект макроса, который включает макрокоманду " ДобавитьМеню". Это Макрокоманда иногда называется "макросом меню".

  1. На вкладке Создание в группе Макросы и код нажмите кнопку Макрос.

  2. В поле со списком Добавить новую макрокоманду в окне конструктора макросов выберите параметр ДобавитьМеню.

  3. В поле аргумента имя меню для макрокоманды ДобавитьМеню введите название меню (например, "команды формы"). Этот аргумент не является обязательным, но его рекомендуется использовать, если на шаге 3 вы планируете добавить меню на вкладку ленты (например, на вкладку " надстройки" формы или отчета). Если меню Добавлено в контекстном меню на шаге 3, аргумент Название меню игнорируется.

  4. В поле имя макроса в меню введите имя объекта макроса, созданного на этапе 1.

  5. Сохраните и назовите этот второй объект макроса, например мкраддшорткутмену.

    На приведенном ниже рисунке показан пример объекта макроса "меню", созданного на этапе 1.

    Снимок экрана: объект макроса Access с макрокомандой "ДобавитьМеню".

Шаг 3: вложение меню в элемент управления, форму, отчет или базу данных

В зависимости от того, где вы хотите вставить меню, выполните одно или несколько из указанных ниже действий.

Добавление меню на вкладку "надстройки" формы или отчета

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

  1. В области навигации щелкните правой кнопкой мыши форму или отчет в том месте, где вы хотите вставить меню, а затем выберите команду конструктор.

  2. На вкладке Конструктор в группе Сервис нажмите кнопку Окно свойств.

  3. Выделите весь объект, выбрав форму или отчет в списке в верхней части области задач страница свойств.

  4. На вкладке Дополнительно на странице свойств в поле свойства строки меню введите имя объекта макроса, созданного на этапе 2 (в этом примере — "мкраддшорткутмену").

  5. Сохранение изменений в форме или отчете.

    В следующий раз, когда вы открываете форму или отчет , на ленте появляется вкладка "надстройки". Щелкните вкладку, чтобы открыть меню, как показано на рисунке ниже.

    Снимок экрана: лента "надстройки" в Access

    Дополнительные сведения о методах настройки ленты, таких как добавление настраиваемых вкладок или скрытие заданных по умолчанию вкладок, можно найти в статье Создание настраиваемой ленты в Access.

Добавление меню в качестве контекстного меню для формы, отчета или элемента управления

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

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

  2. На вкладке Конструктор в группе Сервис нажмите кнопку Окно свойств.

  3. Выберите элемент управления или объект, к которому вы хотите прикрепить контекстное меню.

    Чтобы выделить весь объект, выберите в списке в верхней части области задач страница свойств форму или отчет .

  4. На вкладке Дополнительно на странице свойств в поле свойства строки контекстного меню введите имя объекта макроса, созданного на этапе 2 (в данном примере — "мкраддшорткутмену").

  5. Убедитесь, что для свойства контекстНого меню задано значение Да.

  6. Сохранение изменений в форме или отчете.

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

    Снимок экрана: контекстное меню в форме Access

Добавление меню в виде глобального контекстного меню

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

  1. Выберите Файл > Параметры.

  2. В диалоговом окне Параметры Access щелкните элемент Текущая база данных.

  3. В разделе Параметры ленты и панелей инструментовв строке контекстного меню введите имя макроса, созданного на этапе 2 (в этом примере — "мкраддшорткутмену").

  4. Нажмите кнопку ОК , чтобы сохранить изменения в диалоговом окне " Параметры Access ".

  5. Закройте и снова откройте базу данных, чтобы изменения вступили в силу.

Пользовательские контекстные меню заменяют контекстные меню по умолчанию для объектов, к которым они присоединены. Если вы хотите сохранить определенные команды доступа в этих меню, используйте макрокоманду ВыполнитьКоманду , чтобы поместить команды в объекты макросов для меню, в которых вы хотите их использовать.

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

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

Чтобы создать подменю в списке команд контекстного меню, выполните действие 1, чтобы создать отдельный объект макроса, который будет содержать только команды подменю, как показано на рисунке ниже.

Снимок экрана: макрос в Access с двумя вложенными макросами

Затем выполните шаг 1 еще раз, чтобы определить команды для объекта Menu верхнего уровня. Добавьте подменю как элемент в объект макроса более верхнего уровня с помощью макрокоманды " ДобавитьМеню ". На приведенном ниже рисунке показан объект макроса для меню, которое содержит вложенное меню. Третий вложенный макрос в этом примере объекта макроса создает подменю Экспорт в... (мкршорткутсубменукоммандс).

Снимок экрана: макрос Access с четырьмя вложенными макросами

На приведенном ниже рисунке показано итоговое контекстное меню с подменю:

Снимок экрана: контекстное меню с вложенным меню

Вы можете создать несколько уровней вложенных меню с помощью макрокоманд " ДобавитьМеню " в объектах макросов для каждого уровня меню. Убедитесь, что для каждого действия ДобавитьМеню задано значение для аргумента Название меню , в противном случае подменю будет отображаться в виде пустой строки в меню верхнего уровня.

Условия для выражений с макросами, использующие блоки Если/then/иначе , поддерживаются только в меню верхнего уровня объекта макроса. Другими словами, вы можете использовать выражение условия в объекте макроса меню, чтобы определить, будут ли отображаться определенные меню или контекстные меню, но только для меню на верхнем уровне. Выражения условия нельзя использовать для отображения или скрытия команд или подменю в меню. Вы также можете использовать выражение условия, чтобы скрыть или отобразить настраиваемое контекстное меню или контекстное меню.

Кроме того, макрос меню, созданный в действии 2, может быть частью объекта макроса. Например, если у вас есть несколько контекстных меню для различных объектов или элементов управления, вы можете создать один объект макроса, который содержит все необходимые макросы меню. Убедитесь, что каждому подмакросу присвоено уникальное имя. На шаге 3 Используйте следующую нотацию для ссылки на макрос: макрубжектнаме. субмакронаме. Например, мкраддшорткутменус. AddMenu2.

К началу страницы

Создание настраиваемых контекстных меню в Access 2007

Окно конструктора макросов в Microsoft Access 2007 по сравнению с более поздними версиями, поэтому при использовании Access 2007 разрешите следующие разделы и проследите за ними.

На этом этапе вы создадите группу макросов, каждый из которых будет отдельной командой контекстного меню.

Что такое группа макросов?

Группа макросов — это один объект макроса, который содержит два или более независимых макросов. Отдельные макросы определяются путем ввода имени каждого макроса в столбце Names (имена макросов). На приведенном ниже рисунке Macro3 — это группа макросов. Нотфаундмсг и фаундмсг — это отдельные макросы в группе, каждый из которых состоит из двух макрокоманд.

Пример группы макросов

Примечание: Столбец " имя макроса " по умолчанию скрыт. Чтобы отобразить столбец имя макроса , на вкладке конструктор в группе Показать или скрыть выберите пункт имена макросов.

  1. Откройте вкладку Создание и в группе Другие нажмите кнопку Макрос. Если она недоступна, нажмите стрелку под кнопкой Модуль или Модуль класса, а затем нажмите кнопку Макрос.

  2. На вкладке конструктор в группе Показать или скрыть выберите пункт имена макросов , чтобы открыть столбец имя макроса .

  3. Для каждой команды, которую вы хотите использовать в настраиваемом контекстном меню, выполните указанные ниже действия.

    • В столбце имя макроса введите текст, который должен отображаться в контекстном меню (например, "Печать отчета" или "Сохранить").

      1. Примечание: Чтобы создать клавишу доступа для выбора команды с помощью клавиатуры, введите амперсанд (_Амп_) перед буквой, которую вы хотите использовать в качестве клавиши доступа, в имени команды (например, "_Амп_саве"). Это письмо будет подчеркнуто в меню.

    • В столбце Action (действие ) выберите первое действие, которое вы хотите выполнить, выбери команду в контекстном меню.

    • Если при выборе этой команды требуется выполнить дополнительные действия, добавьте их в последующие строки. Для каждого последующего действия оставьте ячейку имя макроса пустой.

      1. Примечание: Чтобы создать строку между двумя командами меню, введите дефис (-) в столбце имя макроса между соответствующими командами меню.

  4. Сохраните макрос и присвойте ему имя, например мкршорткутменукоммандс.

На приведенном ниже рисунке показан пример группы макросов для настраиваемого меню или контекстного меню.

Группа макросов меню в конструкторе

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

  1. Откройте вкладку Создание и в группе Другие нажмите кнопку Макрос. Если она недоступна, нажмите стрелку под кнопкой Модуль или Модуль класса, а затем нажмите кнопку Макрос.

  2. На первой строке макроса выберите параметр ДобавитьМеню в списке макрокоманд .

  3. В разделе аргументы макрокомандыв поле имя меню введите название меню (например, "команды отчета"). Этот аргумент не является обязательным, но его рекомендуется использовать, если на шаге 3 вы планируете добавить меню на вкладку ленты (например, на вкладку " надстройки" формы или отчета). Если меню Добавлено в контекстном меню на шаге 3, аргумент Название меню игнорируется.

  4. В поле имя макроса меню введите имя макроса, созданного в действии 1.

  5. Сохраните макрос и присвойте ему имя, например мкраддшорткутмену.

На приведенном ниже рисунке показан пример макроса, который создает меню, созданное на этапе 1.

Макрос меню в конструкторе

В зависимости от того, где вы хотите вставить меню, выполните одно или несколько из указанных ниже действий.

  • Добавление меню на вкладку "надстройки" формы или отчета

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

    Вкладка "Надстройки", содержащая настраиваемое меню

    1. В области навигации щелкните правой кнопкой мыши форму или отчет в том месте, где вы хотите вставить меню, а затем выберите команду конструктор.

    2. На вкладке Конструктор в группе Показать или скрыть выберите пункт Страница свойств.

    3. Выделите весь объект, выбрав форму или отчет в списке в верхней части области задач страница свойств.

    4. На вкладке Дополнительно на странице свойств в поле свойства контекстного меню введите имя макроса, созданного на этапе 2 (в этом примере — "мкраддшорткутмену").

      В следующий раз, когда вы открываете форму или отчет , на ленте появляется вкладка "надстройки". Щелкните вкладку, чтобы открыть меню.

      Дополнительные сведения о методах настройки ленты, таких как добавление настраиваемых вкладок или скрытие заданных по умолчанию вкладок, можно найти в статье Создание настраиваемой ленты в Access.

      Лента входит в Пользовательский интерфейс Microsoft Office Fluent.

  • Добавление меню в качестве контекстного меню для формы, отчета или элемента управления

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

    Простое контекстное меню

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

    2. На вкладке Конструктор в группе Показать или скрыть выберите пункт Страница свойств.

    3. Выберите элемент управления или объект, к которому вы хотите прикрепить контекстное меню.

      Примечание: Чтобы выделить весь объект, выберите в списке в верхней части области задач страница свойств форму или отчет .

    4. На вкладке Дополнительно на странице свойств в поле свойства строки контекстного меню введите имя макроса, созданного на этапе 2 (в этом примере — "мкраддшорткутмену").

  • Добавление меню в виде глобального контекстного меню

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

    1. Нажмите кнопку Microsoft Office , а затем — Параметры Access.

    2. В диалоговом окне Параметры Access щелкните элемент Текущая база данных.

    3. В разделе Параметры ленты и панелей инструментовв строке контекстного меню введите имя макроса, созданного на этапе 2 (в этом примере — "мкраддшорткутмену").

  • Пользовательские контекстные меню заменяют контекстные меню по умолчанию для объектов, к которым они присоединены. Если вы хотите сохранить определенные команды доступа в этих меню, используйте макрокоманду " ВыполнитьКоманду ", чтобы поместить команды в группы макросов для нужных меню.

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

  • При указании макроса для формы или отчета или базы данных Access запускает этот макрос в меню при каждом открытии формы, отчета или базы данных. Если вы вносите изменения в макросы меню или группу макросов, которые определяют ее команды во время открытия формы, отчета или базы данных, необходимо закрыть форму, отчет или базу данных и снова открыть ее, чтобы увидеть изменения.

  • Чтобы создать подменю, выполните действие 1, чтобы создать отдельную группу макросов, которая будет содержать только команды подменю. Затем выполните шаг 1 еще раз, чтобы определить команды меню верхнего уровня. Добавьте подменю как элемент в группу макросов более верхнего уровня с помощью макрокоманды " ДобавитьМеню ". На приведенном ниже рисунке показана группа макросов для меню, которое содержит подменю, а затем — появившееся контекстное меню. Третья строка в группе "макрос" создает подменю " Экспорт в... " (мкрсубмену).

    Контекстное меню, содержащее вложенное меню

    Вы можете создать несколько уровней подменю, используя макрокоманды ДобавитьМеню в группах макросов для каждого уровня меню. Убедитесь, что для каждого действия ДобавитьМеню задано значение для аргумента Название меню , в противном случае подменю будет отображаться в виде пустой строки в меню верхнего уровня.

  • Условия для макросов поддерживаются только в макросе меню верхнего уровня. Другими словами, вы можете использовать условие в макросе меню, чтобы определить, будут ли отображаться определенные меню или контекстные меню, но только для меню на верхнем уровне. Вы не можете использовать условия для отображения или скрытия команд или подменю в меню. Кроме того, условие можно использовать для скрытия или отображения настраиваемого контекстного меню или глобального контекстного меню.

  • Кроме того, макрос меню, созданный в действии 2, может входить в группу макросов. Например, если у вас есть несколько контекстных меню для различных объектов или элементов управления, вы можете создать один объект макроса, который содержит все необходимые макросы меню. Убедитесь, что отображается столбец имя макроса , и введите уникальное имя для каждого макроса. На шаге 3 Используйте следующую нотацию для ссылки на макрос: макрограупнаме. имяМакроса. Например, мкраддшорткутменус. AddMenu2.

К началу страницы

Совершенствование навыков работы с Office
Перейти к обучению
Первоочередный доступ к новым возможностям
Присоединиться к программе предварительной оценки Office

Были ли сведения полезными?

Спасибо за ваш отзыв!

Благодарим за отзыв! Возможно, будет полезно связать вас с одним из наших специалистов службы поддержки Office.

×