VBA常用代码解析(第四十一讲).docx
《VBA常用代码解析(第四十一讲).docx》由会员分享,可在线阅读,更多相关《VBA常用代码解析(第四十一讲).docx(11页珍藏版)》请在课桌文档上搜索。
1、VBA常用代码解析(第四十一讲)148在用户窗体上添加菜单在VBA中,用户窗体上是没有菜单的,为了使用方便,我们可以使用APl函数在用户窗体上添加菜单,示例代码如下:PrivateDeclareFunctionFindWindowLib,ser32,Alias,FindWindowA(ByVaIIpCIassNameAsString,ByVaIIpWindowNameAsString)AsLongPrivateDeclareFunctionSetMenuLib,ser32,(ByVaIhwdAsLong,ByVaIhMeuAsLong)AsLongPrivateDeclareFunctionC
2、reateMenuLib,ser32,()AsLongPrivateDeclareFunctionAppendMenuLib,ser32,Alias,AppendMenuA(ByVaIhMeuAsLong,ByVaIwFlagsAsLong,ByVaIWlDNewItemAsLong,ByVaIIpNewItemAsAny)AsLongPrivateDeclareFunctionDestroyMenuLib,ser32(ByVaIhMeuAsLong)AsLongPrivateDeclareFunctionCreatePopupMenuLib,ser32,()AsLongPrivateDecl
3、areFunctionSetWindowLongLib,user32,Alias,SetWindowLongA(ByVaIhwdAsLong,ByVaIlndexAs1.ong,ByVaIdwNewLogAsLong)AsLongPrivateDeclareFunctionGetWindowLongLib,ser32,Alias,GetWindowLongA(ByVaIhwdAsLong,ByVaInlndexAsLong)AsLongPrivateConstGWL_WNDPROC=(-4)PrivateConstMF_STRING=&H0&PrivateConstMF_POPUP=&H10&
4、PrivateConstMF_SEPARATOR=&H800&DimMenuWndAsLong,DumpAsLong,PopupMenuIDAsLong,PopupMenuWndAsLong,MenuIDAsLongPrivateSubUserFormJnitiaIizeOIfVal(AppIication.Version)hwd=FindWindowCThunderXFrame,Me.Caption)Elsehwnd=FindWindowCThunderDFrame,Me.Captio)EndlfMenuWnd=CreateMenuQPopupMenuID=CreatePoppMeu()Du
5、mp=AppedMe(MenWd,MF_STRING+MF.POPUP,PoPUPMenUID,系统设置(&X)Dump=AppedMe(PopupMeulDjMF_STRING,100,保存(&S),)Dump=APPendMenU(POPUPMenUID,MF_STRING,101,备份(&E)Dump=APPendMenU(POPUPMenUID,MF_STRING,102,退出(&X)PopupMenuID=CreatePoppMeu()Dump=AppendMe(MeWnd,MF_STRING+MF_POPUP,POPUPMenUlD会计凭证(&P)Dump=AppendMe(Pop
6、pMenID,MF_STRING,110,录入(&L)Dump=AppendMe(PoppMenID,MF_STRING,111,审核(&C)PopupMenuID=CreatePoppMeu()Dump=AppendMe(MeWdjMF_STRING+MF_POPUP,POPUPMenUlD会计账簿(&Z)Dump=APPendMenU(POPUPMenUID,MF_STRING,112,记账(&T)Dump=AppendMe(PopupMeulDjMF_STRING,113,结账(&J)PopupMenuID=CreatePoppMeu()Dump=AppendMenu(MenuWnc)j
7、MF_STRING+MF.POPUP,POPUPMenUID会计报表(&B)Dump=AppedMeu(PoppMenID,MF_STRING,114,资产负债表(&F)Dump=AppendMe(PoppMenID,MF_STRING,115,损益表(&Y)Dump=SetMeu(hwd,MenuWnd)PreWinProc=GetWindowLog(hwd,GWL_WNDPROC)SetWidowLonghwnd,GWLWNDPRe)C,AddressOfMsgProcessEndSubPrivateSubUSerFormTerminate。DestroyMenuMenuWndDestro
8、yMenupopupMenuIDDestroyMenupopupMenuWndSetWindowLonghwnd,GWL_WNDPROC,PreWinProcEndSub代码解析:第1行到第13行代码,APl函数声明。第14行到第41代码,用户窗体的InitiaIiZe事件过程,在窗体显示时使用API函数在窗体上添加菜单。其中第22行代码添加第一个“系统设置”菜单,第23、24、25行代码在“系统设置”菜单中添加三个子菜单,第26行代码往下继续添加其他菜单。第40行代码,为窗体中添加的菜单指定所执行的过程名称为“MsgProcess”函数过程。第42行到第47行代码,用户窗体的Terminat
9、e事件过程,将所有引用对象的变量设置成Nothing,从而删除对象的所有引用。为了能够使用窗体中添加的菜单,需要在模块中写入下面的代码:PublicPreWinProcAsLong,hwdAsLongPublicDeclareFunctionCheckMenuRadioItemLib,user32,(ByVaIhMeAsLong,ByVaI1AsLong,ByVaI2AsLong,ByVaI3AsLong,ByVaI4AsLong)AsLongPublicDeclareFunctionCheckMenuItemLib,user32,(ByVaIhMeuAsLong,ByVaIWlDCheckI
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VBA 常用 代码 解析 第四 十一

链接地址:https://www.desk33.com/p-1242188.html