vba程式設計時為了介面美觀,我們經常用到窗體form(比如歡迎視窗),那麼,如何做到讓vba窗體在excel啟動時自動執行呢?
方法有二:
第一,雙擊thisworkbook,輸入以下**(open事件):
第二,也可以插入乙個模組,輸入下面自啟動**:
sub auto_open()
userform1.show
end sub
兩種方法都可以啟動vba窗體(關閉窗體:unload userform1或者userform1.hide)。
上面兩個過程其實就是乙個自啟動過程,除了啟動窗體,還可以幹很多其他的事情,比如增加選單,總之,一些需要在excel啟動後就完成的功能都可以放在這些過程中。下面是乙個增加選單的程式:
open事件:
private sub workbook_open()
addnewmenu
end sub
模組中addnewmenu過程,本過程也可以直接放在open方法中,這樣寫是為了可讀性。
'新增選單項
'與新增新選單一樣,在新增選單項及子選單時,使用add方法,且指定合適的控制項型別,其**清單如下:
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("迴圈取貨(&x)").delete
'利用id屬性查詢幫助選單
set helpmenu = commandbars(1).findcontrol(id:=30010)
if helpmenu is nothing then
'如果該選單不存在,則將新選單新增到末尾
'設定新選單為臨時的
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
'新增選單標題並指定熱鍵
newmenu.caption = "迴圈取貨(&x)"
'新增第乙個選單項
set menuitem = newmenu.controls.add(type:=msocontrolbutton)
with menuitem
.caption = "匯入看板(&k)..."
'新增快捷鍵
.shortcuttext = "ctrl+shift+k"
.faceid = 590 ' 不同的數值代表不同的圖示
.onaction = "impkanban"
end with
'新增第二個選單項
set menuitem = newmenu.controls.add(type:=msocontrolbutton)
with menuitem
.caption = "匯入清單(&q)..."
'新增快捷鍵
.shortcuttext = "ctrl+shift+q"
.faceid = 162
.onaction = "impqingdan"
end with
'新增第三個選單項
'本選單有子選單項,因此其型別為msocontrolpopup
set menuitem = newmenu.controls.add(type:=msocontrolpopup)
with menuitem
.caption = "資料包表(&r)..."
'新增分隔線
.begingroup = true
end with
'新增子選單
'新增第乙個子選單
set submenuitem = menuitem.controls.add(type:=msocontrolbutton)
with submenuitem
.caption = "月彙總(&m)"
.faceid = 110
.onaction = "monthrpt"
end with
'新增第二個子選單
set submenuitem = menuitem.controls.add(type:=msocontrolbutton)
with submenuitem
.caption = "季度彙總(&q)"
.faceid = 222
.onaction = "seasonrpt"
end with
end sub
系統啟動時自動啟動程式
下面主要介紹採用編輯登錄檔的方式來實現。一般系統啟動時自動啟動程式的註冊資訊都在 software microsoft windows currentversion run 裡面。系統啟動時自動啟動 自動開啟的檔案,如果是可執行應用程式,即為程式的路徑及檔名 帶字尾 是否自動啟動,true表示自動啟...
docker mysql啟動時自動執行初始建表指令碼
預設情況下,mysql映象建立的docker容器啟動時只是乙個空的資料庫例項,為了簡化docker部署,我們需要 在docker建立mysql容器的時,資料庫和表已經自動建好,初始化資料也已自動錄入,也就是說容器啟動後資料庫就可用了。這就需要容器啟動時能自動執行sql指令碼。在mysql官方映象中提...
SpringBoot啟動時自動執行sql指令碼
需要配置專案下的yml檔案 在檔案下加如如下配置 data classpath code generator data.sql initialization mode alwaysspring.datasource.initialization mode 初始化模式 springboot2.0 其中...