朋友們好,今日講VBA代碼第三十八講:如何通過(guò)VBA代碼隱藏Excel主窗口。如果希望在程序啟動(dòng)時(shí)或運(yùn)行過(guò)程中隱藏Excel主窗口,有以下方法實(shí)現(xiàn)。
一:當(dāng)Application對(duì)象的Visible屬性設(shè)置為False時(shí),Application對(duì)象不可見(jiàn),即能隱藏Excel主窗口,如下面的代碼所示。
Private Sub Workbook_Open()
Application.Visible = False
UserForm1.Show
End Sub
為了使程序運(yùn)行可視,我又寫(xiě)了幾行代碼:
Private Sub Frame1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If UserForm1.TextBox2 = 123 Then
Application.Visible = True
Else
UserForm1.TextBox2.SetFocus
End If
End Sub
代碼解析:
代碼工作簿的Open事件,在工作簿打開(kāi)時(shí)將Application對(duì)象的Visible屬性設(shè)置為False隱藏Excel主窗口。
顯示Excel主窗口的方法是將Application對(duì)象的Visible屬性重新設(shè)置為T(mén)rue。
當(dāng)工作簿文件打開(kāi)時(shí),隱藏Excel主窗口,只顯示用戶登錄窗體UserForm1。
下面我們看看代碼窗口:
運(yùn)行窗口:
當(dāng)輸入123后,按下退出鍵后,回到主窗口:
二:設(shè)置Application對(duì)象的Left屬性(從屏幕左邊界至Microsoft Excel主窗口左邊界的距離)和/或Top屬性(從屏幕頂端到Microsoft Excel主窗口頂端的距離)將Application對(duì)象移出屏幕外,實(shí)現(xiàn)隱藏Excel主窗口,如下面的代碼所示。
Private Sub Workbook_Open()
Application.WindowState = xlNormal
Application.Left = 10000
UserForm1.StartUpPosition = 2
UserForm1.Show
End Sub
同樣為了使程序可視化,我仍寫(xiě)了如下代碼:
Private Sub Frame1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If UserForm1.TextBox2 = 123 Then
Application.Visible = True
Application.WindowState = xlMaximized
Else
UserForm1.TextBox2.SetFocus
End If
End Sub
讀者可以自己去驗(yàn)證一下,我這里就不再截圖了。
代碼解析:
工作簿的Open事件過(guò)程,設(shè)置Application對(duì)象的Left屬性為一個(gè)大的數(shù)值,從而將應(yīng)用程序窗口移出屏幕。
第2行代碼將應(yīng)用程序窗口設(shè)置為正常狀態(tài),只有當(dāng)應(yīng)用程序窗口正常顯示時(shí)才能夠設(shè)置Application對(duì)象的Left屬性。
第3行代碼將Application對(duì)象的Left屬性設(shè)置為一個(gè)大的數(shù)值,從而隱藏Excel主窗口。
第4行代碼設(shè)置用戶窗體的StartUpPosition屬性值為2,使窗體顯示在屏幕的中央。StartUpPosition屬性返回或設(shè)置一個(gè)值,用來(lái)指定用戶窗體第一次出現(xiàn)時(shí)的位置,
在第二段代碼的第四行代碼:Application.WindowState = xlMaximized 是使主窗體最大化。
今日內(nèi)容回向:
1.如何隱藏主窗口?
2.上述兩種方法的意義是什么?
聯(lián)系客服