控制Excel窗口大小和形状大小VBA

我有几个代码来操纵窗口大小的Excel窗口,使窗口匹配的形状(命名为背景)

我的问题是,形状和窗口的高度和宽度不匹配。

有什么我失踪了吗? 像素不应该等于像素吗?

工作簿激活模块:

Private Sub Workbook_Activate() ' Hide Ribbon and Controls Dim Background As Shape Set Background = ThisWorkbook.ActiveSheet.Shapes("Background") With Application .ScreenUpdating = False .ExecuteExcel4Macro "SHOW.TOOLBAR(""RIBBON"", FALSE)" .DisplayFormulaBar = False .WindowState = xlNormal .Height = Background.Height .Width = Background.Width .DisplayStatusBar = False End With With ActiveWindow .DisplayHeadings = False .DisplayWorkbookTabs = False .DisplayHeadings = False .DisplayHorizontalScrollBar = False .DisplayVerticalScrollBar = False .ScrollColumn = 1 .ScrollRow = 1 End With End Sub 

工作簿取消激活模块:

 Private Sub Workbook_Deactivate() ' Show all Controls and Ribbon With Application .ScreenUpdating = False .ExecuteExcel4Macro "SHOW.TOOLBAR(""RIBBON"", TRUE)" .DisplayFormulaBar = True End With With ActiveWindow .DisplayHeadings = True .DisplayWorkbookTabs = True .DisplayHeadings = True .DisplayHorizontalScrollBar = True .DisplayVerticalScrollBar = True End With End Sub 

换页模块:

 Private Sub Workbook_SheetActivate(ByVal Sh As Object) Dim Background As Shape Set Background = Nothing On Error Resume Next Set Background = Sh.Shapes("Background") On Error GoTo 0 If Not Background Is Nothing Then With Application .WindowState = xlNormal .Height = Background.Height .Width = Background.Width End With With ActiveWindow .ScrollColumn = 1 .ScrollRow = 1 End With End If End Sub 

有人可以帮助为什么这些不匹配?

非常感谢

编辑添加了屏幕截图:背景是黑色的方块(为了保密的目的必须删除实际图片)。 白色的边缘是优秀的背景

Excel截图

试试这个,让我知道你的想法:

行后:

 Set Background = ThisWorkbook.ActiveSheet.Shapes("Background") 

加:

 Background.Left = 0 Background.Top = 0