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

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

С помощью макросов 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, чтобы определить команды для объекта меню более высокого уровня. Добавьте вложенное меню как элемент в объект макроса более высокого уровня с помощью макрокоманды " ДобавитьМеню ". На следующем рисунке показан объект макроса для меню, которое содержит вложенное меню. Третий вложенный макрос в этом примере объекта макроса создает подменю Экспорт в... (мкршорткутсубменукоммандс).

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

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

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

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

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

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

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

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

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

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

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

Группа макросов — это один объект макроса, который содержит два или более независимых макросов. Отдельные макросы определяются путем ввода имени каждого из них в столбце имена макросов. На приведенном ниже рисунке 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.

×