【VBA研究】EXCEL啟動(dòng)時(shí)自動(dòng)啟動(dòng)窗體 | 您所在的位置:網(wǎng)站首頁(yè) › 周易八字算命免費(fèi)測(cè)八字不知道時(shí)辰怎么算 › 【VBA研究】EXCEL啟動(dòng)時(shí)自動(dòng)啟動(dòng)窗體 |
作者:iamlaosong VBA編程時(shí)為了界面美觀,我們經(jīng)常用到窗體Form(比如歡迎窗口),那么,如何做到讓VBA窗體在EXCEL啟動(dòng)時(shí)自動(dòng)運(yùn)行呢? 方法有二: 第一,雙擊ThisWorkbook,輸入以下代碼(Open事件): Private Sub Workbook_Open() ? ? Application.Visible = False ? ? ' 關(guān)閉應(yīng)用對(duì)象,只保留窗體。 ? ? Welcome.Show End Sub 第二,也可以插入一個(gè)模塊,輸入下面自啟動(dòng)代碼: Sub Auto_Open() ? ? UserForm1.Show End Sub 兩種方法都可以啟動(dòng)VBA窗體(關(guān)閉窗體:Unload UserForm1或者UserForm1.Hide)。 上面兩個(gè)過(guò)程其實(shí)就是一個(gè)自啟動(dòng)過(guò)程,除了啟動(dòng)窗體,還可以干很多其他的事情,比如增加菜單,總之,一些需要在Excel啟動(dòng)后就完成的功能都可以放在這些過(guò)程中。下面是一個(gè)增加菜單的程序: Open事件: Private Sub Workbook_Open() ? ? AddNewMenu End Sub 模塊中AddNewMenu過(guò)程,本過(guò)程也可以直接放在Open方法中,這樣寫(xiě)是為了可讀性。 '添加菜單項(xiàng) '與添加新菜單一樣,在添加菜單項(xiàng)及子菜單時(shí),使用Add方法,且指定合適的控件類(lèi)型,其代碼清單如下: Sub AddNewMenu() Dim HelpMenu As CommandBarControl Dim NewMenu As CommandBarPopup Dim MenuItem As CommandBarControl Dim SubMenuItem As CommandBarButton On Error Resume Next '如果菜單已存在,則刪除該菜單 CommandBars(1).Controls("循環(huán)取貨(&X)").Delete '利用ID屬性查找?guī)椭藛? Set HelpMenu = CommandBars(1).FindControl(ID:=30010) If HelpMenu Is Nothing Then '如果該菜單不存在,則將新菜單添加到末尾 '設(shè)置新菜單為臨時(shí)的 Set NewMenu = CommandBars(1).Controls.Add(Type:=msoControlPopup, Temporary:=True) Else '將新菜單添加到幫助菜單之前 Set NewMenu = CommandBars(1).Controls.Add(Type:=msoControlPopup, Before:=HelpMenu.Index, Temporary:=True) End If '添加菜單標(biāo)題并指定熱鍵 NewMenu.Caption = "循環(huán)取貨(&X)" '添加第一個(gè)菜單項(xiàng) Set MenuItem = NewMenu.Controls.Add(Type:=msoControlButton) With MenuItem .Caption = "導(dǎo)入看板(&K)..." '添加快捷鍵 .ShortcutText = "Ctrl+Shift+K" .FaceId = 590 ' 不同的數(shù)值代表不同的圖標(biāo) .OnAction = "ImpKanban" End With '添加第二個(gè)菜單項(xiàng) Set MenuItem = NewMenu.Controls.Add(Type:=msoControlButton) With MenuItem .Caption = "導(dǎo)入清單(&Q)..." '添加快捷鍵 .ShortcutText = "Ctrl+Shift+Q" .FaceId = 162 .OnAction = "ImpQingdan" End With '添加第三個(gè)菜單項(xiàng) '本菜單有子菜單項(xiàng),因此其類(lèi)型為msoControlPopup Set MenuItem = NewMenu.Controls.Add(Type:=msoControlPopup) With MenuItem .Caption = "數(shù)據(jù)報(bào)表(&R)..." '添加分隔線 .BeginGroup = True End With '添加子菜單 '添加第一個(gè)子菜單 Set SubMenuItem = MenuItem.Controls.Add(Type:=msoControlButton) With SubMenuItem .Caption = "月匯總(&M)" .FaceId = 110 .OnAction = "MonthRpt" End With '添加第二個(gè)子菜單 Set SubMenuItem = MenuItem.Controls.Add(Type:=msoControlButton) With SubMenuItem .Caption = "季度匯總(&Q)" .FaceId = 222 .OnAction = "SeasonRpt" End With End Sub |
今日新聞 |
推薦新聞 |
專題文章 |
CopyRight 2018-2019 實(shí)驗(yàn)室設(shè)備網(wǎng) 版權(quán)所有 |