使用宏创建自定义菜单和快捷菜单

重要:  本文是由机器翻译的,请参阅免责声明。请在 此处 中查找本文的英文版本以便参考。

可以使用 Access 宏来创建在右键单击窗体、报表或各个控件时显示的自定义快捷菜单。还可以创建在针对特定窗体或报表的功能区上显示的自定义菜单。

若要通过使用宏来创建菜单,请执行以下三个主要步骤:

  1. 创建定义菜单命令的宏组。

  2. 另建一个创建菜单本身的宏。

  3. 将菜单附加到控件、窗体、报表或整个数据库。

以下各部分将详细地介绍这些步骤。

步骤 1:创建包含菜单命令的宏组

在此步骤中,您将创建一个宏组,其中每个宏都是快捷菜单上的一个单独的命令。

什么是宏组?

宏组是包含两个或多个独立宏的单个宏对象。可通过在“宏名称”列中为每个宏键入一个名称来标识各个宏。在下图中,“宏3”就是一个宏组。“NotFoundMsg”“FoundMsg”是该组中的单个宏,每个宏都包含两个宏操作。

宏组示例

注意: “宏名”列默认情况下是隐藏的。若要显示“宏名”列,请在“设计”选项卡上的“显示/隐藏”组中,单击“宏名”

  1. 在“创建”选项卡上的“其他”组中,单击“”。如果此命令不可用,请单击“模块”或“类模块”按钮下方的箭头,然后单击“”。

  2. 设计选项卡上的显示/隐藏组中,单击宏名以显示宏名列。

  3. 对于要在自定义快捷菜单上显示的每个命令,请执行以下操作:

    • “宏名”列中,输入要在快捷菜单上显示的文本(例如,“打印”或“保存”)。

      1. 注意: 若要创建访问键以便您能够使用键盘来选择命令,请在命令名称后作为访问键的字母前面键入一个与号 (&)(例如,“保存(&S)”)。该字母将在菜单中显示为带有下划线。

    • “操作”列中,选择要在单击快捷菜单上的命令时执行的第一个操作。

    • 如果要在选择此命令时执行多个操作,请将这些操作添加到后续行中。对于每个后续操作,保留“宏名”单元格为空。

      1. 注意: 要在两个菜单命令之间创建一条直线,请在“宏名”栏中相应的菜单命令之间输入一个连字符 (-)。

  4. 保存并命名的宏,例如, mcrShortcutMenuCommands

下图显示了针对自定义菜单或快捷菜单的宏组示例。

“设计”视图中的菜单宏组

步骤 2:创建用于创建菜单的宏

此步骤可能看起来是冗余的但要创建从宏组中的步骤 1 中创建的快捷菜单上,必须创建一个包含的第二个宏AddMenu宏操作。此宏有时称为"菜单宏"。

  1. 在“创建”选项卡上的“其他”组中,单击“”。如果此命令不可用,请单击“模块”或“类模块”按钮下方的箭头,然后单击“”。

  2. 在该宏的第一行上,选择“操作”列表中的“AddMenu”

  3. “操作参数”下的“菜单名称”框中,键入菜单的名称(例如,“报表命令”)。此参数不是必需的,但如果您打算在步骤 3 中将该菜单添加到“功能区”选项卡(如窗体或报表的“加载项”选项卡)上,则建议使用此参数。如果要在步骤 3 中将该菜单添加为快捷菜单,则可忽略“菜单名称”参数。

  4. “菜单宏名称”框中,输入您在步骤 1 中创建的宏的名称。

  5. 保存并命名的宏,例如, mcrAddShortcutMenu

下图显示了创建在步骤 1 中设计的菜单的菜单宏的示例。

“设计”视图中的菜单宏

步骤 3:将菜单附加到控件、窗体、报表或数据库中

根据您希望菜单出现的位置,使用以下一个或多个过程。

  • 向窗体或报表的“加载项”选项卡中添加菜单

    如果您希望菜单显示在特定窗体或报表的“加载项”选项卡上,请使用此过程,如下图所示:

    包含自定义菜单的“加载项”选项卡

    1. 在导航窗格中,右键单击您希望显示菜单的窗体或报表,然后单击“设计视图”

    2. “设计”选项卡上的“显示/隐藏”组中,单击“属性表”

    3. 通过从“属性表”任务窗格顶部的列表中选择“窗体”“报表”,选择整个对象。

    4. 在“属性表”的“其他”选项卡上的“快捷菜单”属性框中,键入您在步骤 2 中创建的宏的名称(在本示例中为“mcrAddShortcutMenu”)。

      下次打开相应的窗体或报表时,“加载项”选项卡将显示在功能区中。单击该选项卡可看到添加的菜单。

      功能区自定义技术,如添加自定义选项卡或隐藏的默认选项卡中,有关详细信息,请参阅文章自定义功能区

      功能区是 Microsoft Office Fluent 用户界面的一个组件。

  • 作为窗体、报表或控件的快捷菜单添加菜单

    如果您希望在右键单击特定的窗体、报表或控件时显示菜单,请使用此过程,如下图所示:

    简单的快捷菜单

    1. 在导航窗格中,右键单击您希望显示快捷菜单的窗体或报表,然后单击“设计视图”

    2. “设计”选项卡上的“显示/隐藏”组中,单击“属性表”

    3. 选择要将快捷菜单附加到的控件或对象。

      注意: 若要选择整个对象,请从“属性表”任务窗格顶部的列表中选择“窗体”“报表”

    4. 在“属性表”的“其他”选项卡上的“快捷菜单栏”属性框中,键入您在步骤 2 中创建的宏的名称(在本示例中为“mcrAddShortcutMenu”)。

  • 作为全局快捷菜单添加菜单

    可使用此过程替换当前数据库中的所有默认快捷菜单。已附加到指定窗体、报表或控件的自定义快捷菜单不会受到影响。

    1. 单击Microsoft Office 按钮 Office 按钮图像 ,然后单击Access 选项

    2. “Access 选项”对话框中,单击“当前数据库”

    3. “功能区和工具栏选项”下的“快捷菜单栏”框中,键入您在步骤 2 中创建的宏的名称(在本示例中为“mcrAddShortcutMenu”)。

注意: 

  • 自定义快捷菜单将替换其附加到的对象的默认快捷菜单。如果要在这些菜单上留用某些 Access 命令,请使用 RunCommand 操作将这些命令放入到需要它们的菜单所对应的宏组中。

  • 附加到控件的自定义快捷菜单将取代在数据库中定义的任何其他自定义快捷菜单。附加到窗体或报表的自定义快捷菜单将取代自定义全局快捷菜单。

  • 在为窗体、报表或数据库指定了一个菜单宏后,只要打开该窗体、报表或数据库,Access 就会运行该菜单宏。如果您在该窗体、报表或数据库打开的状态下,更改了定义其命令的菜单宏或宏组,则必须先关闭该窗体、报表或数据库,然后重新打开以查看更改。

  • 若要创建子菜单,请按照步骤 1 创建仅包含子菜单命令的单独的宏组。然后,再次按照步骤 1 为更高级别的菜单定义命令。通过使用 AddMenu宏操作,将子菜单添加为更高级别宏组中的项。下图显示了包含子菜单的菜单的宏组,并显示了生成的快捷菜单。宏组中的第三行用于创建“导出到(&E)...”子菜单 (mcrSubMenu)。

    包含子菜单的快捷菜单

    可以通过在每个菜单级别的宏组中使用 AddMenu 操作来创建多个级别的子菜单。请确保为每个 AddMenu 操作的“菜单名称”参数提供一个值,否则子菜单将在更高级别的菜单中显示为空行。

  • 只在顶级菜单宏中支持宏条件。换言之,可以在菜单宏中使用条件来确定是否将显示特定菜单或快捷菜单,但是这种做法只适用于顶级菜单。不能使用条件来显示或隐藏菜单中的命令或子菜单。您还可以使用条件来隐藏或显示自定义快捷菜单或全局快捷菜单。

  • (可选) 在步骤 2 中创建的菜单宏可以宏组的一部分。例如,如果您有多个不同的对象或控件的快捷菜单,您可以创建一个宏对象,其中包含所有必要的菜单宏。请确保显示宏名列,然后键入每个宏的唯一名称。在步骤 3 中,使用以下表示法引用宏︰ macrogroupname.macroname。例如, mcrAddShortcutMenus.AddMenu2

返回页首

注意: 机器翻译免责声明:本文是由无人工介入的计算机系统翻译的。Microsoft 提供机器翻译是为了帮助非英语国家/地区用户方便阅读有关 Microsoft 产品、服务和技术的内容。由于机器翻译的原因,本文可能包含词汇、语法或文法方面的错误。

扩展你的技能
了解培训
抢先获得新功能
加入 Office 预览体验计划

此信息是否有帮助?

谢谢您的反馈!

谢谢你的反馈! 可能需要转接到 Office 支持专员。

×