Access编程交流网
  • 设为首页|收藏本站|繁体中文|手机版
  •     
  • Access培训-Access开发平台-Access行业开发

  • 首页
  • 资讯
  • 技巧
  • 源码
  • 行业
  • 资源
  • 活动
  • 关于

技巧

ACCESS数据库

启动/设置/选项/背景

修复/压缩

安全/加密/解密

快捷键

版本升级/其它等

数据表

命名方式/设计规范

表设计

查询

Sql语言基础

选择查询

更新查询

删除查询

追加查询

生成表查询

交叉表查询

SQL特定查询

查询参数

查询综合应用

界面/窗体/控件

标签

文本框

命令按钮

组合框/列表框

选项组/复选框/选项按钮

选项卡

子窗体

窗体本身/综合应用

其它

报表打印

报表设计

高级报表

模块/函数/VBA/API/系统

VBA基础

内置函数

调试/跟踪/Debug

模块/类模块

API/COM/系统相关

字符数字日期

网络通信游戏

加密解密安全

文件处理

经典算法

宏/菜单/工具栏/功能区

宏/脚本

菜单/工具栏

功能区/Ribbon

图表/图形/图像/多媒体

图表

图形/图像

音频

视频/动画

DAO/链接表/ADO/ADP

DAO/链接表/ODBC

ADO/RDO

ADP

ActiveX/第三方控件/插件

Treeview树控件

ListView列表控件

Toolbar工具栏控件

微软其它控件

Dbi-Tech

CodeJock

Grid++Report

FastReport

ComponentOne

加载项/插件/Addin

OFFICE集成/导入导出/交互

Excel导入导出/交互

Word导入导出/交互

PPT交互

Outlook控制/邮件

Text文本文件/INI/CSV

PDF/SWF/XML格式

CAD格式

Sharepoint/其它Office

SqlServer/其它数据库

表

视图

存储过程/触发器

函数

用户/权限/安全

调试/维护

SqlServer其它/综合

发布/打包/文档/帮助

开发版/运行时

打包/发布/部署

开发文档/帮助制作

Access完整行业系统

采购管理系统

销售管理系统

仓库管理系统

人力资源管理HRM

CRM管理系统

MRP/ERP管理系统

BRP/流程优化

其它管理系统

心得/经验/绝招
其它/杂项
Excel技巧

Excel应用与操作

Excel开发编程

Word技巧

Word应用与操作

Word开发编程

Outlook技巧

Outlook应用与操作

Outlook开发编程

热门文章

  • 使用数据访问页
  • Access编程-操作(宏..
  • Access编程-操作(宏..
  • Access编程-操作(宏..
  • 自定义菜单的另类导入导出
  • Access编程-操作(宏..

最新文章

  • Access 2010创建..
  • 隐藏ACCESS主窗口的方..
  • 不修改注册表方式取消OFF..
  • Access的RunMen..
  • RunCommand运行访..
  • 解决大量数据录入的一方法(..

联系方式

Access交流网(免费Access交流)

QQ:18449932 

网  址:www.access-cn.com

当前位置:首页 > 技巧 > 宏/菜单/工具栏/功能区
宏/菜单/工具栏/功能区

VBA自定义菜单和菜单栏(一)

正 文:

前言

在EXCEL中,我们的操作都是通过“工具栏、菜单栏、快捷菜”单实现。EXCEL通过菜单给我们提供基本操作功能之外,也为我们提供了扩展自定义功能的接口,即自定义自己的工具栏、菜单栏。

本文着重介绍如何在 Excel 2003版本中通过编程方式自定义菜单和菜单栏方法。其中包含Excel 中管理和自定义菜单栏、菜单、命令、子菜单和快捷菜单,我将通过代码实例分步说明。

与大家分享关于VBA实现菜单栏管理与自定义菜单栏功能的实现。

一、简介

在 Microsoft Excel 2000以上版本中实现许与自定义菜单栏和菜单相关的常见任务,可以使用“自定义”对话框(见图1.1)。但如果要实现较高级任务或为自定义程序定制菜单栏和菜单,就需要创建 Microsoft Visual Basic for Applications (VBA) 代码。

500)this.width=500}" alt="" src="[InstallDir_ChannelDir]{$UploadDir}/200909/20090904084259196.jpg"> 

有关如何使用“自定义”对话框的更多信息,你可以单击“帮助”菜单上的“Microsoft Excel 帮助”,在“Office 助手”或“搜索向导”中键入自定义菜单栏,然后单击“搜索”查看主题。

二、命令栏

在 Microsoft Office 中,所有工具栏、菜单栏和快捷菜单都是被作为“命令栏”这样一种对象以编程方式控制的。下列所有项目在 VBA 中皆用 CommandBar 对象表示:

l    菜单栏、工具栏和快捷菜单。

l    菜单栏和工具栏上的菜单。

l    菜单、子菜单和快捷菜单上的子菜单。

您可以修改任何内置的菜单栏和工具栏,还可以创建和修改用您自己的 VBA 代码交付的自定义工具栏、菜单栏和快捷菜单。您可以将程序功能以单个按钮的形式放在工具栏上,或以命令名称组的形式放在菜单上。因为工具栏和菜单都是命令栏,所以可以使用同一类型的控件。

在 VBA 和 Microsoft Visual Basic 中,按钮和菜单项用 CommandBarButton 对象表示。显示菜单和子菜单的弹出控件用 CommandBarPopup 对象表示。在以下示例中,名为“Menu”的控件和名为“Submenu”的控件都是用于显示菜单和子菜单的弹出控件,并且这两个控件是各自的控件集中唯一的 CommandBar 对象。

在 Microsoft Excel 中,菜单栏和工具栏被视为是同一种可编程对象,即 CommandBar 对象。可以使用 CommandBar 对象中的控件来指代菜单、菜单项、子菜单和快捷菜单。可以在 Type 参数中使用一个常量为每个控件指定要用于菜单、子菜单或命令的控件类型。

三、控件常量

下面是 Excel 2003 中的各种控件常量的列表,这些常量指定用于特定菜单栏控件的图形控件类型:

• MsoControlActiveX*

• MsoControlAutoCompleteCombo***

• MsoControlButton

• MsoControlButtonDropdown

• MsoControlButtonPopup

• MsoControlComboBox

• MsoControlCustom

• MsoControlDropdown

• MsoControlEdit

• MsoControlExpandingGrid

• MsoControlGauge

• MsoControlGenericDropdown

• MsoControlGraphicCombo

• MsoControlGraphicDropdown

• MsoControlGraphicPopup

• MsoControlGrid

• MsoControlLabel

• MsoControlLabelEx***

• MsoControlOCXDropDown

• MsoControlPane **

• MsoControlPopup

• MsoControlSpinner***

• MsoControlSplitButtonMRUPopup

• MsoControlSplitButtonPopup

• MsoControlSplitDropdown

• MsoControlSplitExpandingGrid

• MsoControlWorkPane**

* 表示 Microsoft Excel 2000 中的新增项

** 表示 Microsoft Excel 2002 中的新增项

*** 表示 Microsoft Office Excel 2003 中的新增项

 

四、菜单栏

菜单栏是一种命令栏。它是一种可在其中添加菜单、菜单项和子菜单的对象。

有关如何在 Excel 中管理菜单栏和菜单项的更多信息,请按照下列步骤操作:

1. 启动 Microsoft Visual Basic 编辑器。

2. 在“帮助”菜单上,单击“Microsoft Visual Basic 帮助”。

3. 在“Office 助手”框或“应答向导”框中,键入菜单栏,然后单击“搜索”。

4. 在 Excel 2003 和 Excel 2002 中,单击“添加和管理菜单栏和菜单项”。在 Excel 2000 中,单击“关于菜单和工具栏”。

可以在运行时修改菜单栏及该菜单栏上的控件。对菜单栏所做的更改可能会影响菜单栏的外观或位置。可对控件进行的更改取决于控件类型。下表列出了最常见的属性和常用于更改控件的状态、操作或内容的方法:

属性或方法

用途

Add

添加菜单栏,方法是使用 CommandBars 对象集合的 Add 方法,然后为 Menubar 参数指定 TRUE 值。

Enabled

如果 Enabled 属性的值为 TRUE,那么用户可以使用 Visual Basic 代码使指定的菜单栏可见。如果 Enabled 属性的值为 FALSE,用户就无法让菜单栏可见。不过,菜单栏将出现在可用命令栏列表中。

Protection

使您可以通过特定用户操作来保护菜单栏。

Position

指定新菜单栏相对于程序窗口的位置。菜单栏相对于程序窗口的位置可以是以下 MsoBarPosition 常量属性之一:msoBarLeft、msoBarTop、msoBarRight、msoBarBottom、msoBarFloating、msoBarPopup(用于创建快捷菜单)或 msoBarMenuBar(仅用于 Apple Macintosh)。

Visible

定控件是可见的指,还是隐藏的。

4.1 Add方法应用于CommandBars对象

新建一个命令栏并添加到命令栏集合。返回 CommandBar 对象。

expression.Add ( Name , Position , MenuBar , Temporary )

l         expression必需。该表达式返回一个 CommandBars 对象。

l         Name(Variant 类型)可选。新命令栏的名称。如果忽略该参数,则为命令栏指定默认名称(例如:Custom 1)。

l         Position(Variant 类型)可选。新命令栏的位置或类型。可以为下表所列的 MsoBarPosition 常量之一。

常量

说明

msoBarLeft、msoBarTop、msoBarRight 和 msoBarBottom

指定新命令栏的左侧、顶部、右侧和底部坐标

msoBarFloating

指定新命令栏不固定

msoBarPopup

指定新命令栏为快捷菜单

msoBarMenuBar

仅适用于 Macintosh 机

 

l         MenuBar  (Variant类型)可选。设置为 True 将以新命令栏替换活动菜单栏。默认值为 False。

l         Temporary  (Variant类型)可选。设置为 True 将使新命令栏为临时命令栏。临时命令栏在关闭容器应用程序时删除。默认值为 False。

4.2返回命令栏控件的 ID

以下代码示例返回活动菜单栏的 ID:

Sub Id_Control ()

Dim myId as Object

   Set myId = CommandBars("Worksheet Menu Bar").Controls("工具(&T)")

   MsgBox myId.Caption & Chr(13) & MyId.Id

End Sub

4.3确定活动菜单栏的名称

以下代码示例返回活动菜单栏的名称:

Sub MenuBars_GetName()

   MsgBox CommandBars.ActiveMenuBar.Name

End Sub

4.4保存(内置或自定义菜单栏的)活动状态

您可能需要将 originalMenuBar 变量声明为公共变量,这样,子例程就可以在其他子例程(如 Auto_Close 子例程)中使用该变量。以这种方式声明和使用该变量会将用户的上一个菜单栏重置为初始状态。以下示例宏重置菜单栏:

Public originalMenuBar as Object

Sub MenuBars_Capture()

   Set originalMenuBar = CommandBars.ActiveMenuBar

End Sub

4.5创建自定义命令栏

以下代码示例创建名为 My Command Bar 的自定义命令栏:

Sub MenuBar_Create()

Application.CommandBars.Add Name:="My command bar"

End Sub

您还可以通过使用 Temporary:=True 参数来创建自定义命令栏。Temporary:=True 参数允许命令栏在您退出 Excel 时自动重置。以下代码使用 Temporary:=True 参数创建自定义命令栏:

Sub MenuBar_Create()

Application.CommandBars.Add Name:="My command bar", Temporary:=True

End Sub

4.6显示自定义命令栏

以下示例创建并显示自定义的“My Custom Bar”菜单栏,然后用它替换内置的菜单栏:

Sub MenuBar_Show()

Dim myNewBar As Object

   Set myNewBar = CommandBars.Add(Name:="Custom1", Position:=msoBarFloating)

   '您必须先启用您的自定义菜单栏,然后看见它。

   '使菜单栏添加到自定义对话框列表中的可用菜单栏上。

'设置菜单属性设置为True取代内置的菜单栏。

   myNewBar.Enabled = True

   myNewBar.Visible = True

End Sub

4.7删除自定义命令栏

以下代码示例删除名为“Custom 1”的自定义菜单栏:

Sub MenuBar_Delete()

   CommandBars("Custom1").Delete

End Sub

4.8隐藏命令栏

以下代码示例从可用菜单栏列表中删除内置“图表”菜单栏:

Sub MenuBar_Display()

   CommandBars("Chart").Enabled = False

End Sub

4.9显示命令栏

以下代码示例从可用菜单栏中添加内置“图表”菜单栏:

Sub MenuBar_Display()

   CommandBars("Chart").Enabled = True

End Sub

4.10还原内置命令栏

还原菜单栏会重置(菜单和菜单项的)默认控件。示例代码还原内置“图表”菜单栏:

Sub MenuBar_Restore()

   CommandBars("Chart").Reset

End Sub

注意:您只能重置内置菜单栏,不能重置自定义菜单栏。

发布人:江羽-网络  
分享到:
点击次数:  更新时间:2009-09-04 08:41:53  【打印此页】  【关闭】
上一条:VBA自定义菜单和菜单栏(二)  下一条:另类限制次数与注册实例(mdb)



相关文章

  • • Access 2010创建、管理自定义功能区
  • • 隐藏ACCESS主窗口的方法
  • • 不修改注册表方式取消OFFICE2003的安全警告
  • • Access的RunMenuCommand 宏操作
  • • RunCommand运行访问菜单或工具栏命令
  • • 解决大量数据录入的一方法(部分字段与上条字段内容相同)
  • • 【Access技巧】-隐藏菜单栏
  • • 设置Access窗体启动

热门文章

  • [2015-02-25] 解决大量数据录入的一方法(部分字段与上条字段内容相同)access数据库
  • [2015-01-03] 【Access技巧】-隐藏菜单栏access数据库
  • [2017-02-18] RunCommand运行访问菜单或工具栏命令access数据库
  • [2009-09-05] VBA自定义菜单和菜单栏(二)access数据库
  • [2004-11-29] Access丢失的菜单怎样找回来?access数据库
  • [2009-03-25] Access编程-操作(宏)[14]access数据库

热门产品

公司动态|在线留言|在线反馈|友情链接|会员中心|站内搜索|网站地图

中山市天鸣科技发展有限公司 版权所有 1999-2023 粤ICP备10043721号

QQ:18449932

Access应用 Access培训 Access开发 Access平台

access|数据库|access下载|access教程|access视频|access软件

Powered by MetInfo 5.3.12 ©2008-2025  www.metinfo.cn