Hallo Ralf,
ich hab mich nochmal daran probiert, diesmal kannst du den gewünschten Bereich selektieren, dann das Makro aufrufen.
Das Makro läuft schon korrekt, aber es gibt Probleme mit dem Tab durch die andere Schriftgröße.
Ich hatte zum Testen paar Zeilen mit jeweils zwei durch Tab getrennten Wörtern drinnen. D.h. die zweiten Wörter stehen sauber untereinander, alle so 6 cm vom linken Rand.
Also ist die Position der Tabfestlegung des ersten Tabs bei 6cm.
Jetzt wird das erste Wort mit pt12 größer formatiert. Wenn nun das Wort rechts über diese 6 cm kommt, so verschiebt Word den Tab um eine Tabfestlegung nach rechts.
Irgendwie geht das In Word,daß man über das Lineal oder so die Position der ersten Tabfestlegung verschieben kann. Vielleicht geht das auch über Vba, daß ma dann die Position des ersten tabs auf 8 cm setzt, damit alles wieder ordentlich untereinandersteht.
Probier einfach mal den Code, dann wirst du sehen was ich damit meinte/meine.
In der auskommentierten Codezeile habe ich versucht, das problem zu lösen indem ich jeden Tab durch einen zweifach-Tab ersetze, das klappt auch einmal, aber dann wird
myRange.Sentences(2)
nicht mehr gefunden, da durch die Einügung die Selection aufgehoben/verändert worden ist und es keine zweite Zeile (=Sentences(2) in der Selection mehr gibt.
Die einfachste Lösung ist, du überzeugst deine Leute, daß es viel hübscher ist wenn alles vor dem Tab die Schriftgröße 10 hat und das nach dem Tab die Schriftgröße 12, das klappt nämlich.
Sub ttt2()
Dim myRange, N As Long, C As Long, Pos As Long
Application.ScreenUpdating = False
Set myRange = Selection
For N = 1 To myRange.Sentences.Count
Pos = InStr(myRange.Sentences(N), Chr(9))
For C = 1 To Len(myRange.Sentences(N))
If C \>= Pos Then
myRange.Sentences(N).Characters(C).Font.name = "Courier"
myRange.Sentences(N).Characters(C).Font.Size = 10
Else
myRange.Sentences(N).Characters(C).Font.name = "Arial"
myRange.Sentences(N).Characters(C).Font.Size = 12
End If
Next C
'myRange.Sentences(N) = Replace(myRange.Sentences(N), Chr(9), Chr(9) & Chr(9))
Next N
Application.ScreenUpdating = True
End Sub
Gruß
Reinhard