2
www.ChF-Online.de  

Wordfenster/-dokumente anordnen

   Neuigkeiten
   API-Aufrufe in VBA
   VBA2HTML
   Word
   Word-VBA
aktiv aktiv Verschiedenes
 Dateiname ohne Endung
 Dokumentstrukturanzeige
aktiv  Fenster anordnen
 Fensterliste
 Fensterliste (II)
 Kalender erstellen
 Kommentarinformationen
 Lesezeichen
 Beliebigen Ordner öffnen
 Position der Einfügemarke
 Seitenanfang/-ende
 Shapes ansprechen
 Sicherheitskopien erstellen
 Word-Startparameter
 Word-Startparameter II
 Startordner "Bild einfügen"
 Tags finden u. bearbeiten
 Tags finden/bearbeiten (II)
 Text2WordArt
 Textbausteine verwenden
 Textmarken (I)
 Textmarken (II)
 Überschrift zu Textmarke
 VBA-Konverter
 Wasserzeichen
 Zeichen tauschen
 Feld-Arbeiten
 Form-Sachen
 Menü-/Symbolleisten
 VBA und Lotus Notes
 VBA und Mail
 Inside VBAIDE
 Von Word nach Outlook
 Fix-und-Fertiges/Projekte
   Word2007 (RibbonX)
   Word2010 (RibbonX)
   Outlook-VBA
   Links zu VB(A)
   DocToHelp
   Netport Express XL
   Astronomie
   Gästebuch
   Volltextsuche
   Sitemap
   Buch:Word-Programmierung
   Impressum & Kontakt
   Datenschutzerklärung
Getestet unter Word97Getestet unter Word2000  
Makro/Datei speichern
Print

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.


 Besucher: 3 online  |  8 heute  |  2494 diesen Monat  |  1584055 insgesamt | Seitenaufrufe: 73   Letzte Änderung: 24.06.2006 © 2001-14 Christian Freßdorf
  Fürchte Dich nicht vor einem großen Schritt. Du kannst einen Abgrund nicht mit zwei kleinen Sprüngen überqueren.
David Lloyd George, 1863-1945, engl. Politiker
 powered by phpCMS and PAX