You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows10 x64下如何用VBA实现无标题栏及任务栏的完全全屏?

在VBA中实现Windows 10 x64下的完全全屏效果(隐藏标题栏和任务栏)

要在Windows 10 x64系统的VBA中实现完全全屏(隐藏窗口标题栏、任务栏),需要结合修改Office程序窗口样式和控制任务栏状态两部分操作,以下是适配该系统的完整实现方案:

完整代码实现

将以下代码粘贴到VBA模块中:

' 声明Windows API函数(兼容32/64位VBA环境)
#If VBA7 Then
    Declare PtrSafe Function FindWindow Lib "user32.dll" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As LongPtr
    Declare PtrSafe Function SetWindowLongPtr Lib "user32.dll" Alias "SetWindowLongPtrA" (ByVal hwnd As LongPtr, ByVal nIndex As Long, ByVal dwNewLong As LongPtr) As LongPtr
    Declare PtrSafe Function GetWindowLongPtr Lib "user32.dll" Alias "GetWindowLongPtrA" (ByVal hwnd As LongPtr, ByVal nIndex As Long) As LongPtr
    Declare PtrSafe Function SHAppBarMessage Lib "shell32.dll" (ByVal dwMessage As Long, pData As APPBARDATA) As LongPtr
    Declare PtrSafe Function ShowWindow Lib "user32.dll" (ByVal hwnd As LongPtr, ByVal nCmdShow As Long) As Long
#Else
    Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    Declare Function SetWindowLong Lib "user32.dll" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
    Declare Function GetWindowLong Lib "user32.dll" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
    Declare Function SHAppBarMessage Lib "shell32.dll" (ByVal dwMessage As Long, pData As APPBARDATA) As Long
    Declare Function ShowWindow Lib "user32.dll" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
#End If

' API常量定义
Public Const GWL_STYLE = -16
Public Const WS_CAPTION = &HC00000
Public Const WS_THICKFRAME = &H40000
Public Const SW_SHOWMAXIMIZED = 3

Public Const ABM_GETSTATE = &H4
Public Const ABM_SETSTATE = &HA
Public Const ABS_AUTOHIDE = &H1
Public Const ABS_ALWAYSONTOP = &H2

Public Type RECT
    Left As Long
    Top As Long
    Right As Long
    Bottom As Long
End Type

Public Type APPBARDATA
    cbSize As Long
    hwnd As LongPtr
    uCallbackMessage As Long
    uEdge As Long
    rc As RECT
    lParam As Long
End Type

' 保存原始状态,用于退出全屏时恢复
Private originalWindowStyle As LongPtr
Private originalTaskbarState As Long

' 进入完全全屏模式
Sub EnterFullScreen()
    Dim appHwnd As LongPtr
    Dim abd As APPBARDATA
    
    ' 1. 获取当前程序窗口句柄并保存原始样式
    appHwnd = FindWindow("XLMAIN", Application.Caption) ' Excel类名为XLMAIN,Word用OpusApp,PPT用PPFrameClass
    originalWindowStyle = GetWindowLongPtr(appHwnd, GWL_STYLE)
    
    ' 2. 获取并保存任务栏原始状态
    abd.cbSize = Len(abd)
    originalTaskbarState = SHAppBarMessage(ABM_GETSTATE, abd)
    
    ' 3. 隐藏程序标题栏与边框
    SetWindowLongPtr appHwnd, GWL_STYLE, originalWindowStyle And Not (WS_CAPTION Or WS_THICKFRAME)
    ShowWindow appHwnd, SW_SHOWMAXIMIZED
    
    ' 4. 设置任务栏自动隐藏
    abd.lParam = ABS_AUTOHIDE
    SHAppBarMessage ABM_SETSTATE, abd
    
    ' 5. 隐藏Office自带的功能区与状态栏
    Application.DisplayFullScreen = True
    Application.CommandBars("Status Bar").Visible = False
End Sub

' 退出完全全屏模式,恢复原始状态
Sub ExitFullScreen()
    Dim appHwnd As LongPtr
    Dim abd As APPBARDATA
    
    appHwnd = FindWindow("XLMAIN", Application.Caption)
    
    ' 1. 恢复程序窗口样式
    SetWindowLongPtr appHwnd, GWL_STYLE, originalWindowStyle
    ShowWindow appHwnd, SW_SHOWMAXIMIZED
    
    ' 2. 恢复任务栏原始状态
    abd.cbSize = Len(abd)
    abd.lParam = originalTaskbarState
    SHAppBarMessage ABM_SETSTATE, abd
    
    ' 3. 恢复Office界面元素
    Application.DisplayFullScreen = False
    Application.CommandBars("Status Bar").Visible = True
End Sub

关键说明

  • 环境适配:通过#If VBA7 Then分支判断,同时兼容32位和64位VBA环境,确保在Windows 10 x64下稳定运行。
  • 窗口样式修改:移除WS_CAPTION(标题栏)和WS_THICKFRAME(窗口边框)属性,配合最大化操作实现无框全屏。
  • 任务栏控制:调用SHAppBarMessage将任务栏设为自动隐藏,避免全屏时任务栏遮挡界面。
  • 状态恢复:提前保存原始窗口样式和任务栏状态,退出全屏时可完全还原操作前的界面。

使用注意事项

  1. 需在VBA编辑器中开启信任对VBA项目对象模型的访问(路径:文件→选项→信任中心→信任中心设置→宏设置)。
  2. 运行EnterFullScreen进入全屏,ExitFullScreen恢复正常状态;建议将这两个宏添加到快速访问工具栏,方便快速切换。
  3. 若用于Word/PowerPoint,需修改FindWindow的类名:Word对应OpusApp,PowerPoint对应PPFrameClass。

内容的提问来源于stack exchange,提问作者EdsonLopes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 00:40:38