Clever-Excel-Forum

Normale Version: für Leerzeichen in einer (!) Wordzeile den Schriftgrad um einen Punkt verringern
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Moin,

aus Formatierungsgründen möchte ich in mehrzeiligen Fließtexten (Word 2007) relativ häufig für Leerzeichen in einer (!) Wordzeile den Schriftgrad um je einen Punkt verringern. Das hat dann zur Folge, dass dann doch noch das ganze (vorher getrennte) Wort auf diese Zeile passt o. ä.

Bis jetzt markiere ich nacheinander jedes einzelne Leerzeichen und verkleinere über Strg+< den Schriftgrad um 1, 2 oder 3. Je nach dem, wie viel Platz ich in der Zeile gewinnen muss. Da ich das häufiger, und immer wieder mache, ist das mit der Zeit nervig.

Ich würde mich freuen, wenn diese Aufhabe ein Makro übernehmen könnte. Da brauche ich allerdings Hilfe. Das schaffe ich nicht allein.

Im Voraus vielen Dank für Eure Mühe.

Michael
Hast Du schon überlegt, dazu mal ein Makro aufzuzeichnen?
(12.11.2016, 22:41)Torsten schrieb: [ -> ]Hast Du schon überlegt, dazu mal ein Makro aufzuzeichnen?

Guten Morgen Torsten,

ja, habe ich auch schon probiert.

1. Ausgangspunkt vor Makro-Lauf: Cursor muss in der Zeile stehen, in der die Leerzeichen verkleinert werden soll.
2. Mit "Pos1" zum Zeilenanfang gehen
3. Mit "Shift+Cursor nach unten" Zeile markieren

Jetzt fangen die Probleme an:
- zuerst müssten die Leerzeichen gezählt werden
- dann müsste von Leerzeichen zu Leerzeichen gesprungen und es selbst markiert werden (hier dachte ich an "Strg+Cursor nach rechts" - geht aber nicht, wenn beispielsweise Klammern in der Zeile stehen)
- nun müsste entsprechend der Anzahl der Leerzeichen ein Loop vollführt werden.

Herzliche Grüße

Michael
Eine Idee zum Weiterkommen könnte sein: Bei Suchen und Ersetzen kann man beim Ersetzen die Schriftgröße auch für Leerzeichen verändern.
Nicht optimal, aber könnte es für Dich deutlich bequemer machen.
(13.11.2016, 12:13)Torsten schrieb: [ -> ]Eine Idee zum Weiterkommen könnte sein: Bei Suchen und Ersetzen kann man beim Ersetzen die Schriftgröße auch für Leerzeichen verändern.
Nicht optimal, aber könnte es für Dich deutlich bequemer machen.
Danke Torsten,

Hab ich mal ohne Makro getestet. Das Ersetzen von Leerzeichen mit Schriftgrad 11 Punkt durch Leerzeichen mit Schriftgrad 10 Punkt funktioniert. Aber oft reich dieser Platzgewinn nicht aus. Und für jede Leerzeichen-Schriftgrad-Konfigartion braucht man dann ein einzelnes separates Makro. Das scheint leider auch keine praktikable Lösung zu sein.

Danke aber für Deine Idee.

Gruß Michael
Hallo,

Zitat:Hab ich mal ohne Makro getestet. Das Ersetzen von Leerzeichen mit Schriftgrad 11 Punkt durch Leerzeichen mit Schriftgrad 10 Punkt
funktioniert. Aber oft reich dieser Platzgewinn nicht aus. Und für jede Leerzeichen-Schriftgrad-Konfigartion braucht man dann ein
einzelnes separates Makro. Das scheint leider auch keine praktikable Lösung zu sein.

... ein Makro ließe sich aber auch so programmieren, daß man das Vorhaben auch in mehreren Stufen kleiner stellen kann.
1. Ausgangspunkt vor Makro-Lauf: Cursor muss in der Zeile stehen, in der die Leerzeichen verkleinert werden soll.
2. Mit "Pos1" zum Zeilenanfang gehen
3. Mit "Shift+Cursor nach unten" Zeile markieren
(13.11.2016, 14:39)Käpt schrieb: [ -> ]Hallo,


... ein Makro ließe sich aber auch so programmieren, daß man das Vorhaben auch in mehreren Stufen kleiner stellen kann.

Danke Dir für Deine Antwort.

Das wäre schön, mit der MAKRO-Aufnahmefunktion bekomme ich das nicht hin.

Vielleicht könnte es so funktionieren:

1. Ausgangspunkt vor Makro-Lauf: Cursor muss in der Zeile stehen, in der die Leerzeichen verkleinert werden soll.
2. Mit "Pos1" zum Zeilenanfang gehen
3. Mit "Shift+Cursor nach unten" Zeile markieren
4. Schriftgrad feststellen, Variable s
5. Alle Leerzeichen mit Schriftgrad s-1 formatieren
6. Frage: Sollen die Leerzeichen weiter verkleinert werden --> nein, dann Programm beenden; --> ja, dann weiter
7. Alle Leerzeichen mit Schriftgrad s-2 formatieren
6. Frage: Sollen die Leerzeichen weiter verkleinert werden --> nein, dann Programm beenden; --> ja, dann weiter
7. Alle Leerzeichen mit Schriftgrad s-3 formatieren
8. Beenden (mehr Verkleinerungen machen meist keinen Sinn)

Und wenn man dieses Makro schreiben und auf die Symbolleiste für den Schnellzugriff legen könnte, dann wäre es perfekt.

Und genau dafür weiß ich von VBA viel zu wenig und die Makro-Aufzeichnungsfunktion bekomme ich nicht so gebogen.

Herzlich Grüße

Michael
Hallo,

Zitat:Und genau dafür weiß ich von VBA viel zu wenig und die Makro-Aufzeichnungsfunktion bekomme ich nicht so gebogen.

... dann zeichne mal Dein Makro auf und stelle es hier ein. Am liebsten die Datei selbst. Dann sehen wir weiter.

Daß Du das nicht so lauffähig aufzeichnen kannst, so wie Du es gerne laufen haben würdest, das ist mir schon klar.
Das könnte ich auch nicht, weil der Makrorecorder so nicht arbeitet. Aber Grundlegendes läßt sich daraus schon ersehen.