Hallo.
Habe den unten stehenden Code aus dem Internet und möchte ihn gerne auf mein Projekt anpassen. Es geht um die automatische Zoom-Anpassung an die PC-Auflösung.
Wie müsste der Code lauten, wenn ich nicht das aktive Fenster (activeWindow), sondern alle meine Arbeitsblätter auf einen neuen Zoom-Wert einstellen möchte?
Arbeitsblätter wären zurzeit:
Tabelle 1
Tabelle 2
Tabelle 3
Tabelle 4
Tabelle 5
Tabelle 6
Der Code:
Option Explicit
Private Declare Function GetSystemMetrics Lib „user32“ (ByVal nIndex As Long) As Long
Const SM_CXSCREEN = 0
Const SM_CYSCREEN = 1
Sub Aufloesung()
Dim intBreit As Integer
Dim intHoch As Integer
Dim strErgebnis As String
intBreit = GetSystemMetrics(SM_CXSCREEN) intHoch = GetSystemMetrics(SM_CYSCREEN) strErgebnis = intBreit & „x“ & intHoch
Select Case strErgebnis
Case „1280x1024“
ActiveWindow.Zoom = 75
Case „1024x768“
ActiveWindow.Zoom = 85
Case „800x600“
ActiveWindow.Zoom = 80
Case Else
MsgBox „Unbekannte Aufloesung“
End Select
End Sub
Vielen Dank im voraus.
Danny.
Hallo Danny,
ich glaube, das ist eine der wenigen Gelegenheiten, wo man Select bzw. Activate braucht. Ich weiß nicht, wie man Excel dazu bringt, dass ein Workbook mehrere Fenster hat. Da man Zoom nur auf ein Fenster anwenden kann, sehe ich nur die Möglichkeit, nacheinander alle Worksheets in das Fenster (den Vordergrund) zu holen und dann zu zoomen. Das geht z.B. so:
Private Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long
Const SM\_CXSCREEN = 0
Const SM\_CYSCREEN = 1
Sub Aufloesung()
Dim intBreit As Integer
Dim intHoch As Integer
Dim strErgebnis As String
Dim zoomfactor As Integer
Dim blatt As Worksheet
intBreit = GetSystemMetrics(SM\_CXSCREEN)
intHoch = GetSystemMetrics(SM\_CYSCREEN)
strErgebnis = intBreit & "x" & intHoch
zoomfactor = 0
Select Case strErgebnis
Case "1280x1024"
zoomfactor = 75
Case "1024x768"
zoomfactor = 85
Case "800x600"
zoomfactor = 80
Case Else
MsgBox "Unbekannte Aufloesung"
End Select
If zoomfactor \> 0 Then
For Each blatt In Worksheets
blatt.Activate
ActiveWindow.Zoom = zoomfactor
Next blatt
End If
End Sub
Gruß, Andreas
Vielen Dank.
Das hilft mir sehr weiter!