Während in Word97 alle Dokumtente innerhalb einer Word-Instanz geöffnet wurden, werden diese in Word2000 in eigenen
Instanzen geöffnent. Für jede Instanz von Word wird ein eigener Tast angezeigt.
Leider kann dieses Verhalten nicht geändert werden und erst Windows XP erlaubt eine Auswahl dieser Anzeige.
Mit folgendem Makro wird zwar dieses Verhalten in Word2000 nicht geändert, aber es ermöglicht die automatische Anordnung
aller geöffneter Dokumente/Fenster. Dabei können alle Fenster entweder vertikal oder horizontal angeordnet werden. Ist nur
ein Dokument geöffnet, wird dieses in voller Größe angezeigt.
Zuerst wird die Anzahl der Fenster ermittelt und die verfügbare Bildschirmbreite und -höhe auf die Fensteranzahl verteilt.
Anschließend werden in der Schleife alle Fenster nebeneinander bzw. untereinander angeordnet.
Wenn Ihr dieses Makro auf ein neues Symbol in der Symbolleiste legt, könnt Ihr bei jedem neuen Fenster diese wieder automatisch
anordnen lassen.
Bei vielen geöffneten Dokumenten wird allerdings die Fenstergröße schnell zu klein ;-)
Sub Dokumenteanordnen()
Dim wnd As Word.Window
Dim appHeight As Long, appWidth As Long
Dim lWindows As Long, appLeft As Long, appTop As Long
Dim lChildTitleBar As Long
Dim iAnordnung As Integer
Dim sMsg As String
ScreenUpdating = False
'Korrekturfaktor für das erste Fenster
appLeft = -1
With Application
'Fenster Info holen
Set wnd = .ActiveWindow
lWindows = .Windows.Count
' Prüfen, ob überhaupt Fenster geöffnet sind
If (lWindows = 0) Then
Exit Sub
ElseIf (lWindows = 1) Then
wnd.WindowState = wdWindowStateNormal
Exit Sub
End If
sMsg = "Es sind " & lWindows & " Dokumente geöffnet." & vbCrLf
sMsg = Msg & "Fenster vertikal anordnen (sonst horizontal)?"
iAnordnung = MsgBox(Msg, vbYesNo, "Fenster anordnen")
'Fensterbreite auf zur Verfügung stehende
Select Case iAnordnung
Case 6
' Höhe, geteilt durch Anzahl Fenster
appHeight = .UsableHeight / lWindows
appWidth = .UsableWidth
Case 7
'Breite, geteilt durch Anzahl Fenster
appWidth = .UsableWidth / lWindows
appHeight = .UsableHeight
End Select
End With
appTop = 0
appLeft = 0
For Each wnd In Word.Application.Windows
'Fenstergrösse "Wiederherstellen"
'Muss für jedes Fenster in Word2000
'ausgeführt werden
wnd.WindowState = wdWindowStateMaximize
wnd.Width = appWidth
'Fensterhöhe
wnd.Height = appHeight
'Position links setzen
wnd.Left = appLeft
'Position oben setzen
wnd.Top = appTop
'nächste Position links berechnen
'(letzte Position + Fensterbreite
Select Case iAnordnung
Case 6
' Höhe, geteilt durch Anzahl Fenster
appTop = appTop + appHeight
appLeft = 0
Case 7
'Breite, geteilt durch Anzahl Fenster
appTop = 0
appLeft = appLeft + appWidth
End Select
Next
ScreenUpdating = True
End Sub
Als Erweiterung lässt sich z.B. eine variable Aufteilung implementieren.
|