Excel VBA 在我打开的文件中隐藏 Excel 工具栏、功能区等,而不会弄乱任何其他打开的工作簿

Excel VBA Hide Excel Toolbars, Ribbon, etc. in a file i'm opening without messing up any other open Workbooks

我正在使用以下代码隐藏所有栏并打开工作簿以提供应用程序外观。从现在开始,我将把它称为我的 EXCEL APP STYLE FILE。

我用来隐藏所有内容并定义宽度和高度的代码如下:

Sub UIHide()
    With Application
        .ScreenUpdating = False
        .Calculation = xlCalculationManual
        .WindowState = xlNormal
        .ExecuteExcel4Macro "Show.Toolbar(""Ribbon"",False)"
        .CommandBars("Full Screen").Visible = False
        .CommandBars("Worksheet Menu Bar").Enabled = False
        .DisplayStatusBar = False
        .DisplayScrollBars = False
        .DisplayFormulaBar = False
        .Width = 800
        .Height = 450
    End With
    With ActiveWindow
        .DisplayWorkbookTabs = False
        .DisplayHeadings = False
        .DisplayRuler = False
        .DisplayFormulas = False
        .DisplayGridlines = False
        .DisplayHorizontalScrollBar = False
        .DisplayVerticalScrollBar = True
    End With
    With Application
        .ScreenUpdating = True
        .Calculation = xlCalculationAutomatic
    End With
End Sub

以及重置所有内容的代码:

Sub UIShow()
    With Application
        .ExecuteExcel4Macro "Show.Toolbar(""Ribbon"",True)"
        .DisplayStatusBar = True
        .DisplayScrollBars = True
        .DisplayFormulaBar = True
    End With
    With ActiveWindow
        .DisplayWorkbookTabs = True
        .DisplayRuler = True
        .DisplayHorizontalScrollBar = True
        .DisplayVerticalScrollBar = True
    End With
End Sub

然后我调用这些宏

Private Sub Workbook_Open()
    Call UIHide
End Sub
Private Sub Workbook_Activate()
    Call UIHide
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Call UIShow
End Sub
Private Sub Workbook_Deactivate()
    Call UIShow
End Sub

当我打开文件并关闭它(并且没有其他 excel 文件打开)时,一切都按我希望的那样工作。该文件打开时隐藏了所有内容,当我关闭它时,它也会关闭 excel 并且当我再次打开它与任何其他 excel 文件时,一切都恢复正常。

但是,如果我打开我的 EXCEL APP STYLE FILE 而我已经打开了另一个文件,当我关闭 EXCEL APP STYLE FILE 已打开的文件缺少滚动条、公式栏、状态栏和底部工作表选项卡。

  1. 示例,当我打开 EXCEL APP STYLE FILE 时另一个文件已经打开。

  1. EXCEL APP STYLE 文件,但我们可以在背面看到公式栏、工作表选项卡和状态栏在另一个文件中消失了。

  1. 当我关闭它时,公式栏、滚动条、状态栏和工作表选项卡都不见了。

我正在努力调整代码,但我似乎无法解决这个问题,因此当我的 EXCEL APP STYLE FILE 不会“弄乱”任何其他文件时,除了制作本身的变化。这可以实现吗?任何帮助将不胜感激。

提前致谢

我无法在单个工作簿中解决此问题,但这里有一个解决方法似乎可以防止其他工作簿受到影响。

它使用用户打开的“feeder”工作簿,然后feeder 工作簿可以打开Excel 的新实例并加载App Workbook。馈线然后关闭,让您的应用程序打开

Feeder Workbook 中唯一需要的代码是 WorkBook 打开事件......如下所示

Private Sub Workbook_Open()
   Dim oXL As Object
   
   Set oXL = CreateObject("Excel.Application")
   oXL.Workbooks.Open ("C:\YourAPP\YourAPP.xlsm")
   oXL.Visible = True
   AppActivate "YourApp.xlsm"  ' Brings it to Front & gives it the Focus
   If Workbooks.Count = 1 Then
      Application.Quit
   Else
      ThisWorkbook.Close False
   End If
End Sub

你可能需要一个

Application.Quit

在您的应用程序中也要确保 Excel 的实例关闭

更新:添加了以下行 - 原始代码中没有

   `AppActivate "YourApp.xlsm"  ' Brings it to Front & gives it` the Focus