Her satırın sonuna gidin ve parantez içinde kalın metin
MS Word'de her satırın sonundaki belirli kelimeleri biçimlendirmeyi otomatikleştirmem gerekiyor. Word makrolarının sınırlamaları nedeniyle işi yapmak için bir makro kaydedemediğim için, buraya göndermem gerekiyor. Tek ihtiyacım olan aşağıdakileri yapmak: -
- (
- Bir cümlenin sonu olana kadar parantez içindeki metni (parantez dahil) seçmeye başlayın
- Metni kalın olarak biçimlendir
- Bunu dosyanın sonuna kadar yap
- İstisna: Zaten kalın ve altı çizili olan başlıkları biçimlendirmeyin.
Bunu nasıl yapabilirim? Veya hiçbir şey yapmadığı için lütfen kodumu düzeltin.
Sub m1()
'
' m1 Macro
'
'
Dim i As Integer
With Selection.Find
For i = 1 To lastRow
.Forward = True
.ClearFormatting
.MatchCase = False
.Wrap = wdFindContinue
.Execute FindText:="("
Selection.EndKey Unit:=wdLine, Extend:=wdExtend
Selection.Font.Bold = wdToggle
Selection.Font.BoldBi = wdToggle
Next
End With
End Sub
Yanıtlar
Bir makroya ihtiyacınız olmayabilir, çünkü belgenizin gövde metninin Stilinin her zaman Başlık stili dışında belirli bir belirlenmiş stil olduğunu biliyorsunuzdur. Bul ve Değiştir'inizi şu şekilde ayarlayın:

Joker kodun ekran klibinden okunması zorsa: [(] * [)]
Sonunda bu kodu oluşturmayı başardım:
Sub m1()
Selection.HomeKey Unit:=wdStory
With Selection.Find
Do While .Execute(FindText:="(", Forward:=True, MatchWildcards:=False) = True
Selection.EndKey Unit:=wdLine, Extend:=wdExtend
Selection.Font.Bold = wdToggle
Selection.Font.BoldBi = wdToggle
Selection.EndKey Unit:=wdLine
Loop
End With
End Sub
İşe Yaradı! :) Destek için teşekkürler!
MS Word satırlarla çalışmaz. Aşağıdaki VBA kodu, parantezle biten ve içerikle birlikte kalın olan paragrafları bulacaktır.
Sub Bold_ending_parentheses()
Dim par As Word.Paragraph
Dim str As String
Dim closes As Byte
Dim opens As Long
For Each par In ActiveDocument.Paragraphs
str = StrReverse(par.Range.Text)
closes = InStr(Left(str, 4), ")")
If closes Then
opens = InStr(str, "(")
If opens Then
With par.Range
.Find.Text = StrReverse(Mid(str, closes, opens - closes + 1))
Do
.Find.Execute
If .Find.Found Then .Font.Bold = True
Loop While .Find.Found
End With
End If
End If
Next
End Sub
DÜZENLE:
Bul ve Değiştir kullanımına bir örnek. Bunu kullanarak, parantez içindeki tüm metinler kalın yazılır (paragrafın / satırın sonunda olma gerekliliği dikkate alınmadan):
Sub ApplyBoldWithinParentheses()
With ActiveDocument.Content.Find
.ClearFormatting
.Text = "[(]*[)]"
.Replacement.Font.Bold = True
.Format = True
.MatchWildcards = True
.Execute Replace:=wdReplaceAll
End With
End Sub