कोष्ठक के अंदर प्रत्येक पंक्ति और बोल्ड टेक्स्ट के अंत में जाएं
मुझे एमएस वर्ड में प्रत्येक पंक्ति के अंत में विशिष्ट शब्दों को स्वरूपित करने की आवश्यकता है। चूंकि मैं वर्ड मैक्रोज़ की सीमाओं के कारण काम करने के लिए एक मैक्रो रिकॉर्ड नहीं कर सका, इसलिए मुझे इसे यहां पोस्ट करना होगा। मुझे केवल निम्नलिखित करने की आवश्यकता है: -
- की शुरुआत के लिए प्रत्येक पंक्ति की जाँच करें (
- कोष्ठक (कोष्ठक सहित) के अंदर पाठ का चयन शुरू करें एक वाक्य के अंत के रूप में पाया जाता है
- टेक्स्ट को बोल्ड करने के लिए फॉर्मेट करें
- फ़ाइल के अंत तक ऐसा करें
- अपवाद: पहले से ही बोल्ड और रेखांकित किए जाने वाले प्रारूप हेडिंग न करें।
ऐसा कैसे किया जा सकता था? या कृपया मेरे कोड को सुधारें क्योंकि यह कुछ भी नहीं कर रहा है।
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
जवाब
आपको मैक्रो की आवश्यकता नहीं हो सकती है क्या आप जानते हैं कि आपके दस्तावेज़ की बॉडी टेक्स्ट की शैली हमेशा हेडिंग शैली के अलावा एक निश्चित नामित शैली है। अपना ढूँढें और बदलें को इस तरह सेट करें:
अगर वाइल्डकार्ड कोड स्क्रीन क्लिप से पढ़ना मुश्किल है:
मैं आखिरकार इस कोड को बनाने में सफल रहा:
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
यह काम किया! :) सहायता का शुक्रिया!
MS Word लाइनों के साथ काम नहीं करता है। निम्नलिखित VBA कोड पैराग्राफ के साथ समाप्त होने वाले पैराग्राफ पाएंगे और सामग्री के साथ उन्हें बोल्ड करेंगे।
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
संपादित करें:
ढूँढें और बदलें का उपयोग करने का एक उदाहरण। इसका उपयोग करते हुए, कोष्ठक में सभी पाठ को बोल्ड किया जाता है (पैराग्राफ / पंक्ति के अंत में होने की आवश्यकता को ध्यान में नहीं रखते हुए):
Sub ApplyBoldWithinParentheses()
With ActiveDocument.Content.Find
.ClearFormatting
.Text = "[(]*[)]"
.Replacement.Font.Bold = True
.Format = True
.MatchWildcards = True
.Execute Replace:=wdReplaceAll
End With
End Sub