Wordfenster/-dokumente anordnen |
|
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. 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. 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. |
Besucher: 0 online | 0 heute | 0 diesen Monat | 2202360 insgesamt | Seitenaufrufe: 53 | Letzte Änderung: 24.06.2006 | © 2001-18 Christian Freßdorf | ||||
Ich bin ein Idealist, Ich weiß nicht, wohin ich gehe, aber ich bin unterwegs. Carl August Sandburg, 1878-1967, amerik. Dichter |
powered by phpCMS and PAX |