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