如何通过 excel vba 禁用缩放滑块?

how to disable zoom slider through excel vba?

我想在 excel 工作表中禁用缩放滑块。我环顾四周,但找不到解决方案。有一些解决方案指向将缩放设置为定义的值,但其中 none 适合禁用缩放选项本身。 任何帮助将非常感激。

我正在添加我放入 ThisWorkbook 中的代码,以禁用工作表上的大部分可见选项。

Private Sub Workbook_Activate()

Application.ScreenUpdating = False
Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",False)"
Application.DisplayFormulaBar = False
Application.DisplayStatusBar = Not Application.DisplayStatusBar
ActiveWindow.DisplayWorkbookTabs = False
Application.ScreenUpdating = True

End Sub

Private Sub Workbook_Deactivate()
Application.ScreenUpdating = False
Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",True)"
Application.DisplayFormulaBar = True
Application.DisplayStatusBar = True
Application.ScreenUpdating = True
ActiveWindow.DisplayWorkbookTabs = True
End Sub

Private Sub Workbook_Open()
Application.ScreenUpdating = False
'Hide list of sheets
Call hide_sheets
Windows(1).WindowState = xlMaximized
ActiveWindow.DisplayGridlines = False
Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",False)"
Application.DisplayFormulaBar = False
Application.DisplayStatusBar = Not Application.DisplayStatusBar
ActiveWindow.DisplayWorkbookTabs = False
ActiveWindow.Zoom = 100


'Lock cells in the UI sheet
ThisWorkbook.Sheets("UI").ScrollArea = "A1:t46"

'Hide scroll bar
With ActiveWindow
    .DisplayHorizontalScrollBar = False
    .DisplayVerticalScrollBar = False
End With

Application.ScreenUpdating = True    
welcomeScreen.Show 0

End Sub

我遇到的问题的一些屏幕截图。我目前正在通过在工作簿打开时加载最大化版本的用户窗体来使用一些临时安排。所以滑块是隐藏的。

环顾四周后,似乎没有办法完全或专门禁用滑块。如果您的主要任务是避免有人点击缩放滑块,我可能会一起隐藏状态栏。

Application.DisplayStatusBar = False

要单独隐藏缩放滑块,您可以通过编辑注册表项来实现

HKEY_CURRENT_USER\Software\Microsoft\Office.0\Excel\StatusBar

通过将 ZoomSlider 值设置为 0

无论如何,我不认为这可以使用 VBA 实现,即使使用 SaveSetting

您可以尝试编写一个 .reg 文件来更改目标密钥并 VBA-load 它。我不确定这是否可以完成,但即使它有效,用户仍然需要在系统提示中单击“是”以允许将密钥加载到注册表中。

即使用户单击是允许 .reg 文件加载和更改注册表项,Excel 状态栏也不会刷新到 show/hide ZoomSlider,直到Excel 已重新启动。

简而言之,仅使用 VBA 隐藏缩放滑块似乎无法实现。