ahstax
Goto Top

MS Word: erster Buchstabe fett

Hallo,

wie kann ich mit einem Makro den jeweils ersten Buchstaben der Wörter einer markierten Zeichenfolge fett formatieren?

Sub ErsteBuchstabenGross()
Dim sTextIn As String
sTextIn = Application.Selection.Range.Text
...
(oder ist das schon Blödsinn???)

Sonnige Grüße,
Andreas face-wink

Content-Key: 238783

Url: https://administrator.de/contentid/238783

Printed on: April 23, 2024 at 07:04 o'clock

Member: colinardo
Solution colinardo May 21, 2014, updated at May 22, 2014 at 06:56:55 (UTC)
Goto Top
Hallo Andreas,
nichts leicher als das:
Dim wd As Range
If Application.Selection.Range.Words.Count > 0 Then
    For Each wd In Application.Selection.Range.Words
      ActiveDocument.Range(wd.Start, wd.Start + 1).Bold = True
    Next
End If
Grüße Uwe
Member: ahstax
ahstax May 21, 2014 at 13:35:28 (UTC)
Goto Top
Herrlich...!!! face-smile
Gibt es was, was Dir nicht schon über den Weg gelaufen ist?

Ich bekomme nur leider eine Fehlermeldung, dass "Sub oder Function nicht definiert" sei und das Wort "Range" in der For-Schleife wird markiert.

Was müsste ich denn tun, wenn sich der der zu bearbeitende String in der letzten Tabelle in Zelle (1,2) [x,y] auf der letzten Seite eines Dokumentes befindet?

Grüße,
Andreas
Member: colinardo
Solution colinardo May 21, 2014, updated at May 22, 2014 at 06:56:53 (UTC)
Goto Top
Zitat von @ahstax:
Gibt es was, was Dir nicht schon über den Weg gelaufen ist?
doch, eine blaue Katze face-smile
Ich bekomme nur leider eine Fehlermeldung, dass "Sub oder Function nicht definiert" sei und das Wort "Range"
in der For-Schleife wird markiert.
habe es oben etwas angepasst. Du musst natürlich je nachdem in welcher Anwendung du den Code ausführst das entsprechende Word-Dokument referenzieren !
Was müsste ich denn tun, wenn sich der der zu bearbeitende String in der letzten Tabelle in Zelle (1,2) [x,y] auf der letzten Seite eines Dokumentes befindet?
ich dachte du markierst diesen, oder soll der durch den Code markiert werden ? etwas mehr Input face-smile

Grüße Uwe
Member: ahstax
ahstax May 21, 2014 at 13:47:55 (UTC)
Goto Top
Danke für die Änderung! Keine Fehlermeldung, aber der allererste Buchstabe der Markierung wird "ignoriert"...
Interessanterweise scheinen Sonderzeichen auch als Wort erkannt zu werden. So wird bei %ual sowohl das "%" als auch das "u" fett...

Mehr Input? Mehr Input:
Der Satz, den ich manuell markiere (und der bearbeitet werden soll), ist immer der Satz (Zeichenfolge), der in der letzten Tabelle auf der letzten Seite des Dokuments. Die Tabelle besteht aus einer Zeile und zwei Spalten, der Text ist in der rechten Spalte.


Bei der blauen Katze wünsche ich Dir viel Erfolg...! face-smile
Member: ahstax
ahstax May 21, 2014 at 13:50:35 (UTC)
Goto Top
Blaue Katze:
klick
Member: colinardo
Solution colinardo May 21, 2014, updated at May 22, 2014 at 06:56:51 (UTC)
Goto Top
Zitat von @ahstax:
Danke für die Änderung! Keine Fehlermeldung, aber der allererste Buchstabe der Markierung wird "ignoriert"...
Interessanterweise scheinen Sonderzeichen auch als Wort erkannt zu werden. So wird bei %ual sowohl das "%" als auch das
"u" fett...
ja woher soll ich das wissen wie der Text aussieht ? dann müsste man Ausnahmen definieren, oder nach den Leerzeichen gehen. Gib mal ein Beispiel.
Mehr Input? Mehr Input:
Der Satz, den ich manuell markiere (und der bearbeitet werden soll), ist immer der Satz (Zeichenfolge), der in der letzten Tabelle
auf der letzten Seite des Dokuments. Die Tabelle besteht aus einer Zeile und zwei Spalten, der Text ist in der rechten Spalte.
ok, werde das gleich mal nachgucken, sollte kein Problem darstellen.
Member: AnkhMorpork
AnkhMorpork May 21, 2014 at 13:56:38 (UTC)
Goto Top
Member: ahstax
ahstax May 21, 2014 at 13:58:34 (UTC)
Goto Top
Zitat von @colinardo:
ja woher soll ich das wissen wie der Text aussieht ? dann müsste man Ausnahmen definieren, oder nach den Leerzeichen gehen.
Gib mal ein Beispiel.

OK, zugegeben, das war viel vorausgesetzt...
Ein Beispiel könnte sein (so eingegeben):

  • Der %uale Anteil liegt bei 3 4 .

Darin sollten dann die Zeichen
D % A l b 3 4 .[Punkt]
fett werden.
Member: colinardo
Solution colinardo May 21, 2014, updated at May 22, 2014 at 06:56:44 (UTC)
Goto Top
So dies solltest du hiermit machen können:
Dim doc As Document, rngCell As Range, c As Range, app As Application

Set app = Application
Set doc = app.ActiveDocument

'Range der Zelle in der letzten Tabelle auf der letzten Seite  
Set rngCell = doc.Tables(doc.Tables.Count).Cell(1, 2).Range

If rngCell.Characters.Count > 0 Then
    'Ersten Buchstaben fett machen  
    rngCell.Characters(1).Bold = True
    'Jeden Buchstaben der einem Leerzeichen folgt fett formatieren  
    For Each c In rngCell.Characters
        If c.Text = " " Then  
            c.Next(wdCharacter, 1).Bold = True
        End If
    Next
End If
Member: ahstax
ahstax May 22, 2014 at 06:56:41 (UTC)
Goto Top
PERFEKT!!!
Herzlichsten Dank!!! face-smile

Einen schönen, sonnigen Tag wünsche ich