设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

ACCESS中利用VBA对菜单编程的方法

2015-4-27 15:03| 发布者: admin| 查看: 1808| 评论: 17|原作者: 大熊|来自: www.office-cn.net

摘要: 在Windows中对菜单的分类主要的两种: 一般菜单栏 弹出式快捷菜单 (1)一般菜单栏的编程方法:   首先,说明在 ACESS中对菜单栏各部分的定义及命名:  菜单栏:是指我们要操作的整个菜单,在ACCESS ...
在Windows中对菜单的分类主要的两种:
        一般菜单栏
        弹出式快捷菜单
(1)一般菜单栏的编程方法:
  首先,说明在 ACESS中对菜单栏各部分的定义及命名:

 菜单栏:是指我们要操作的整个菜单,在ACCESS 中菜单栏被定义为:CommandBar类型。

 菜单栏中的弹出式控件:是指菜单栏中的每一个具体的弹出式菜单项,这里如“文件”“编辑”“视图”等都是菜单栏中的弹出式控件。在ACCESS中菜单栏的弹出式控件被定义为:CommandBarPopup类型。

 菜单栏中的按钮控件:是指每个弹出式控件中具体的菜单项,如“格式”下的“单元格”“行”“列”等菜单项都是按钮控件。在ACCESS中菜单栏中的按钮控件被定义为:CommandBarButton类型。
  
范例:
该例子将实现自定义菜单“文件”和“帮助”,并在“文件”菜单下设计“保存”“打印”“退出”三项菜单,在“帮助”菜单下设计一“关于”菜单项。
  Sub New_Menu()
  
  '定义菜单变量
  
  Dim NewMenuBar As CommandBar
  
  Dim NewMenuBarPopup1, NewMenuBarPopup2 As CommandBarPopup
  
  Dim NewMenuBarButton As CommandBarButton
  
  DeleNewMenu '清除自定义菜单
  
  '定义菜单栏
  
  Set NewMenuBar = CommandBars.Add("MyMenu", msoBarTop, True)
  
  '定义菜单栏中的弹出式控件
  
  Set NewMenuBarPopup1 = NewMenuBar.Controls.Add(Type:=msoControlPopup)
  
  Set NewMenuBarPopup2 = NewMenuBar.Controls.Add(Type:=msoControlPopup)
  
  NewMenuBarPopup1.Caption = "文件(&F)"
  
  NewMenuBarPopup2.Caption = "帮助(&H)"
  
  ' 定义菜单栏中的按钮控件
  
  Set NewMenuBarButton = NewMenuBarPopup1.Controls.Add(msoControlButton)
  
  NewMenuBarButton.Caption = "保存(&S)" '定义菜单项显示内容
  
  NewMenuBarButton.FaceId = 3 '定义菜单项显示图标
  
  NewMenuBarButton.OnAction = "MySave" '定义菜单项所执行的宏
  
  Set NewMenuBarButton = NewMenuBarPopup1.Controls.Add(msoControlButton)
  
  NewMenuBarButton.BeginGroup = True '显示菜单分隔线
  
  NewMenuBarButton.Caption = "打印(&)" '定义菜单项显示内容
  
  NewMenuBarButton.FaceId = 4 '定义菜单项显示图标
  
  NewMenuBarButton.OnAction = "MyPrint" '定义菜单项所执行的宏
  
  Set NewMenuBarButton = NewMenuBarPopup1.Controls.Add(msoControlButton)
  
  NewMenuBarButton.BeginGroup = True '显示菜单分隔线
  
  NewMenuBarButton.Caption = "退出(&X)" '定义菜单项显示内容
  
  NewMenuBarButton.FaceId = 0 '定义菜单项显示图标
  
  NewMenuBarButton.OnAction = "MyExit" '定义菜单项所执行的宏
  
  Set NewMenuBarButton = NewMenuBarPopup2.Controls.Add(msoControlButton)
  
  NewMenuBarButton.Caption = "关于" '定义菜单项显示内容
  
  NewMenuBarButton.FaceId = 49 '定义菜单项显示图标
  
  NewMenuBarButton.OnAction = "MyAbout" '定义菜单项所执行的宏
  
  NewMenuBar.Visible = True '将定义的菜单显示出来
  
  End Sub
  
  Sub MySave()
  
  MsgBox "定义执行“保存”菜单项功能"
  
  End Sub
  
  Sub MyPrint()
  
  MsgBox "定义执行“打印”菜单项功能"
  
  End Sub
  
  Sub MyExit()
  
  MsgBox "定义执行“退出”菜单项功能"
  
  End Sub
  
  Sub MyAbout()
  
  MsgBox "定义执行“关于”菜单项功能"
  
  End Sub
  
  Sub DeleNewMenu() '清除自定义菜单
  
  On Error Resume Next
  
  CommandBars("MyMenu").Delete
  
  End Sub
  
  Sub auto_close()
  
  ' 当工作簿关闭时将自动清除自定义菜单
  
  DeleNewMenu
  
  End Sub
(2)弹出式菜单的编程方法:
 首先,说明在 ACCESS 中对弹出式菜单中各部分的定义及命名:
  弹出式菜单:是指用鼠标右键弹出的整个菜单,在ACCESS中弹出式菜单被定义为:CommandBar类型。
 
  弹出式菜单项:是指弹出式菜单中的每一个具体的弹出式菜单项,这里如“复制”“粘贴”等都是弹出式菜单项。在ACCESS 中弹出式菜单项被定义为:CommandBarButton类型。
  
  
范例:
该例子将实现在ACCESS系统的弹出式菜单中增加一个菜单项“我的快捷菜单”。
  
  Sub NewMenuItem() ' 增加快捷菜单
  
  '定义快捷菜单变量
  
  Dim NewCellBar As CommandBar
  
  Dim NewCellBarButtom As CommandBarButton
  
  Set NewCellBar = CommandBars("Cell") '定义弹出式菜单
  
  If NewCellBar.Controls.Item(1).Caption < > "我的快捷菜单" The

   注意:首先要引用 Microssoft Office 10.0 Object Library
发表评论

最新评论

引用 zhuyiwen 2002-4-28 04:03
补充:首先要引用 Microssoft Office 10.0 Object Library
引用 大熊 2002-4-28 04:05
2000中,好像是默认的。
引用 zhuyiwen 2002-4-28 04:08
不是默认的!
引用 大熊 2002-4-28 04:13
你是对的,谢谢你的提示。
引用 zhuyiwen 2002-4-28 04:23

大熊,

你的认真、求证的精神值得大家好好学习!

[em26]
引用 大熊 2002-4-28 04:31
谢谢你的鼓励,最近我会多发些好文章的给大家看看的。
引用 cnwang 2002-4-28 04:34
其实引用也是可以用代码来控制的。
引用 大熊 2002-4-28 04:36
是这样的,但是你能说出这样做的原因吗?
引用 cnwang 2002-4-28 04:58
因为并非每台机的引用都能满足你的程序运行需求,比如当你需要整合应用EXCEL时。
引用 大熊 2002-4-28 05:03
我会再研究一下。
引用 ui 2002-4-28 06:37
哇,ACCESS功能真是不用不知道啊。
这儿是个好地方
引用 zhuyiwen 2002-4-29 07:42
你是说的后期绑定吗?

以下是引用cnwang在2002-4-27 20:34:25的发言:
其实引用也是可以用代码来控制的。

引用 大熊 2002-4-29 16:42
这算后期绑定?
引用 sampson 2005-1-11 17:18
你讲的这个在自建的ACCESS数据库中在什么地方如何调用呢,能详解一下吗?
引用 wu8313 2005-1-12 04:18
以下是引用cnwang在2002-4-27 20:34:25的发言:




其实引用也是可以用代码来控制的。




这个该怎样做?
引用 老鬼 2005-1-12 04:49
后期绑定要比直接引用慢,但可以省掉引用的麻烦与不兼容。应该是用CreatObject绑定的。
引用 xtaiguo 2015-2-7 13:18
先收下研究下。

查看全部评论(17)

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-4-20 14:49 , Processed in 0.097607 second(s), 23 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

返回顶部