2016-12-13 8 views
0

Ich versuche, ein Makro zu erstellen, das mein Worddokument durchsucht, um jeden Text zu finden, der zentriert ist, und diese Formatierung darauf anzuwenden.Suchen und formatieren zentrierten Text in Word. - Makro/VBA

With Selection 
.Paragraphs.Alignment = wdAlignParagraphCenter 
.Font.Bold = wdToggle 
.Font.AllCaps = True 
End With 

Ich versuchte

Selection.Find.Style = wdAlignParagraphCenter 

Aber ich nehme an, es ist nicht so einfach ist.

Ich gab dann ist dies ein Schuss,

Dim p As Paragraph 

For Each p In ActiveDocument.Paragraphs 
    If p.Alignment = wdAlignParagraphCenter Then 
     With Selection 
      .Font.Bold = wdToggle 
      .Font.AllCaps = True 
     End With 

    End If 
Next p 

Aber nein leider Glück.

+0

Sie müssen uns Ihren tatsächlichen Code zeigen. Zum Beispiel, was ist die Definition von "Auswahl". –

+0

Ich habe meinen Beitrag aktualisiert hoffentlich hilft das? Lassen Sie mich wissen, wenn Sie weitere Informationen benötigen. Vielen Dank. – Bp944

+0

Der Code funktionierte gut für mich. Wie führst du den Code aus? Funktion oder Sub? Haben Sie versucht, es Schritt für Schritt auszuführen? –

Antwort

0

versuchen Sie dies:

Sub Bold_All_Caps() 
    Dim p As Paragraph 

    For Each p In ActiveDocument.Paragraphs 
     If p.Alignment = wdAlignParagraphCenter Then 
      With p 
       .Range.Font.Bold = True 
       .Range.Font.AllCaps = True 
      End With 

     End If 
    Next p 
End Sub 

Das Problem war, dass Sie die Änderungen (der With Teil) nur die Auswahl angewendet. Wenn Sie das in den Absatz ändern, funktioniert es.

Bitte ändern Sie den Teil .Range.Font.Bold = True zu .Range.Font.Bold = wdToggle, wenn Sie die fettgedruckte Schrift ändern möchten, anstatt die Schrift immer fett zu formatieren. Mit dem wdToggle wird fett formatierter Text nicht fett dargestellt und umgekehrt.

+0

Super! Das tut es. Also p.range wählen Sie den ganzen Absatz aus, der zentriert ist? – Bp944

+0

Der Code durchläuft grundsätzlich jeden Absatz ('For Each ...'), prüft, ob der Absatz zentriert ist ('If p.Alignment ...') und setzt diesen Absatz auf fett und allcaps. Allerdings sollten Sie die Funktionen auf der Registerkarte Stile überprüfen, gibt es eine Option namens "Wählen Sie den gesamten Text mit ähnlicher Formatierung", die genau das tut. –

+0

Das macht Sinn. Ich würde diese Funktion verwenden, aber ich versuche, ein Makro zu erstellen, das mehrere verschiedene Dinge zum Dokumentformat/Layout ausführt. Als Nächstes in der Liste ändern Sie alle Aufzählungszeichen oder Listen in einen bestimmten Listentyp. - Ein wenig abseits von Thema, aber Sie würden nicht zufällig wissen, wo ich die Namen für diese Listen, z. Bulletpoint ist: wdListBullet. Vielen Dank für Ihre Hilfe:] - EDIT: Nvm fand es hier: http://www.thedoctools.com/index.php?show=mt_create_style_name_list :) – Bp944

Verwandte Themen