![]() |
||
![]() |
Angepaßte Zeilenhöhe in ExcelIch suche nach einer Möglichkeit, in Excel markierte Zeilen mit Hilfe eines Makros auf eine A4-Seite zu verteilen. Trotz exakter Berechnung bleiben nach dem Ablauf meines Makros immer noch einige Zeilen übrig, oder es rutschen mehr Zeilen auf die Seite als gewünscht. Wie läßt sich dieses Problem lösen? Ihr Problem ist – so einfach es auch klingen mag – recht vielschichtig. Zunächst ist der bedruckbare Bereich der Seite zu bestimmen. Darauf haben sowohl die Ausrichtung der Seite als auch die Breite der Seitenränder Einfluß. Anschließend müssen Sie bei der Berechnung der Zeilenhöhe beachten, daß Excel Zeilenhöhen nur als Punktangaben annimmt und auch dann nur in einem Raster von 0,25 Punkten. Ob das an der Skalierung der Truetype-Schriftarten liegt oder andere Gründe hat, konnte WIN bisher nicht herausfinden. Sub Spread ()¶Zunächst deklarieren Sie das Page- Setup-Objekt. Dann bestimmen Sie die Anzahl ausgewählter Zeilen. Falls diese kleiner als drei ist, führt das aufgrund der maximalen Zeilenhöhe von 220 Punkt zwingend zu einer unzureichenden Formatierung. Deshalb verzweigt das Makro an dieser Stelle zu einer entsprechenden Meldung. Jetzt bestimmen Sie die Breite des zu subtrahierenden Randes als Summe des oberen und unteren Randes. Je nach Ausrichtung des aktiven Tabellenblatts steht eine maximale Höhe von 29,7 oder 21 Zentimeter zur Verfügung. Wenn alle Größen ermittelt sind, beginnt die Berechnung: Vom verfügbaren Platz auf der Seite in Punkt ist der Rand abzuziehen, dann der verbleibende Rest auf die Zeilen zu verteilen. Die so ermittelte Zeilenhöhe ist den Zeilen der Auswahl zuzuweisen. Allerdings führt diese Lösung noch nicht in allen Fällen zum gewünschten Ergebnis. Die Ursache für die mög- lichen Abweichungen liegt aber nicht in der Differenz der berechneten Zeilenhöhe zu der tatsächlich von Excel verwendeten Höhe (Raster-Problem). Sie liegt in einer nicht näher bestimmbaren Breite von 13 Punkten, die Excel aus irgendeinem Grund noch benötigt. Besonders erstaunlich ist die Tatsache, daß diese Größe sowohl für die horizontale als auch für die vertikale Ausrichtung konstant ist. Sie lösen das Problem, indem Sie die sechste Zeile wie folgt ändern: BorderSize = PgSetUp.TopMargin + PgSetUp.BottomMar-gin + 13¶Mit Hilfe dieser Anpassung können Sie nun Ihre Zeilen wie gewünscht auf eine Seite verteilen. |
![]() |