View Full Version : [SOLVED:] bold everything in paragraph until find: ( or -
dagerr
03-06-2018, 12:49 AM
Hi,
I need a macro wich is bold everything in every paragraph until find: "(" or "-".
E.g.:Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do (eiusmod tempor incididunt ut labore et dolore magna aliqua.
Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut - aliquip ex ea commodo consequat.
Many Thanks
macropod
03-06-2018, 03:23 AM
Try:
Sub Demo()
Application.ScreenUpdating = False
With ActiveDocument.Range
With .Find
.ClearFormatting
.Replacement.ClearFormatting
.Text = "[!\(\-]{1,}"
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindStop
.Format = False
.MatchWildcards = True
.Execute
End With
Do While .Find.Found
Do While InStr(.Text, vbCr) > 0
.MoveStartUntil vbCr, wdForward
.Start = .Start + 1
Loop
If .Text = "" Then Exit Do
If .End = ActiveDocument.Range.End Then Exit Sub
.Font.Bold = True
.Collapse wdCollapseEnd
.Find.Execute
Loop
End With
Application.ScreenUpdating = True
End Sub
dagerr
03-06-2018, 03:32 AM
It stops on:
.Execute
with error 5560
Sub test()
ActiveDocument.Range(0, 0).Text = vbCr
With ActiveDocument.Range.Find
.MatchWildcards = True
.Text = "^13[!^13]@[\(\-]"
.Replacement.Font.Bold = True
.Execute Replace:=wdReplaceAll
.Text = "[\(\-]"
.Font.Bold = True
.Replacement.Font.Bold = False
.Execute Replace:=wdReplaceAll
End With
ActiveDocument.Range(0, 0).Delete
End Sub
マナ
dagerr
03-06-2018, 04:03 AM
Thanks mana, it works but only when "(" and "-" is occur.
I want to bold whole paragraph if mentioned sign not occur in paragraph, so again e.g.:
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do (eiusmod tempor incididunt ut labore et dolore magna aliqua
Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut - aliquip ex ea commodo consequat
Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat
gmayor
03-06-2018, 04:35 AM
How about
Sub Macro1()
Dim oRng As Range
Set oRng = ActiveDocument.Range
oRng.Font.Bold = True
With oRng.Find
Do While .Execute(FindText:=" (")
oRng.End = oRng.Paragraphs(1).Range.End - 1
oRng.Start = oRng.Start + 1
oRng.Font.Bold = False
oRng.Collapse 0
Loop
End With
Set oRng = ActiveDocument.Range
With oRng.Find
Do While .Execute(FindText:=" - ")
oRng.End = oRng.Paragraphs(1).Range.End - 1
oRng.Start = oRng.Start + 1
oRng.Font.Bold = False
oRng.Collapse 0
Loop
End With
lbl_Exit:
Set oRng = Nothing
Exit Sub
End Sub
Sub test2()
Dim r As Range
Set r = ActiveDocument.Range
r.Font.Bold = True
With r.Find
.MatchWildcards = True
.Text = "[\(\-]*^13"
.Replacement.Font.Bold = False
.Execute Replace:=wdReplaceAll
End With
End Sub
マナ
dagerr
03-06-2018, 04:53 AM
Both solution works! Thanks again.
macropod
03-06-2018, 05:05 AM
It stops on:
.Execute
with error 5560
In that case, change:
.Text = "[!\(\-]{1,}"
to:
.Text = "[!\(\-]{1;}"
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions Inc. All rights reserved.