/ / Controlling Excel Fenstergröße und Formgröße VBA - Excel, VBA, Excel-VBA

Excel-Fenster Größe und Form Größe steuern VBA - Excel, VBA, Excel-VBA

Ich habe ein paar Bits Code, um die Fenstergröße des Excel-Fensters zu ändern, damit das Fenster der Größe der Form entspricht (Hintergrund genannt)

Mein Problem ist, dass die Höhe und Breite der Form und des Fensters nicht übereinstimmen.

Gibt es etwas, das mir fehlt? Sollen nicht Pixel Pixel entsprechen?

Arbeitsmappe aktivieren Modul:

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

Arbeitsmappe Modul deaktivieren:

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

Blattwechsel-Modul:

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

Könnte jemand helfen, warum diese nicht zusammenpassen?

Danke vielmals

Screenshot bearbeiten: Hintergrund ist schwarzes Quadrat (Das Bild musste aus Vertraulichkeitsgründen entfernt werden). Weiß um den Rand ist ausgezeichneter Hintergrund

Excel Screenshot

Antworten:

0 für die Antwort № 1

versuche das und lass mich wissen, was du denkst:

Nach der Linie:

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

hinzufügen:

Background.Left = 0
Background.Top = 0