कोष्ठक के अंदर प्रत्येक पंक्ति और बोल्ड टेक्स्ट के अंत में जाएं

Dec 30 2020

मुझे एमएस वर्ड में प्रत्येक पंक्ति के अंत में विशिष्ट शब्दों को स्वरूपित करने की आवश्यकता है। चूंकि मैं वर्ड मैक्रोज़ की सीमाओं के कारण काम करने के लिए एक मैक्रो रिकॉर्ड नहीं कर सका, इसलिए मुझे इसे यहां पोस्ट करना होगा। मुझे केवल निम्नलिखित करने की आवश्यकता है: -

  1. की शुरुआत के लिए प्रत्येक पंक्ति की जाँच करें (
  2. कोष्ठक (कोष्ठक सहित) के अंदर पाठ का चयन शुरू करें एक वाक्य के अंत के रूप में पाया जाता है
  3. टेक्स्ट को बोल्ड करने के लिए फॉर्मेट करें
  4. फ़ाइल के अंत तक ऐसा करें
  5. अपवाद: पहले से ही बोल्ड और रेखांकित किए जाने वाले प्रारूप हेडिंग न करें।

ऐसा कैसे किया जा सकता था? या कृपया मेरे कोड को सुधारें क्योंकि यह कुछ भी नहीं कर रहा है।

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

जवाब

1 RichMichaels Dec 30 2020 at 22:12

आपको मैक्रो की आवश्यकता नहीं हो सकती है क्या आप जानते हैं कि आपके दस्तावेज़ की बॉडी टेक्स्ट की शैली हमेशा हेडिंग शैली के अलावा एक निश्चित नामित शैली है। अपना ढूँढें और बदलें को इस तरह सेट करें:

अगर वाइल्डकार्ड कोड स्क्रीन क्लिप से पढ़ना मुश्किल है:

Roy Dec 31 2020 at 13:51

मैं आखिरकार इस कोड को बनाने में सफल रहा:

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

यह काम किया! :) सहायता का शुक्रिया!

ZygD Dec 30 2020 at 16:54

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