Saturday, 27 June 2026

डुप्लिकेट पैराग्राफ़ों को ढूंढना मैक्रो

डुप्लिकेट पैराग्राफ़ों को ढूंढना मैक्रो की सहायता से काफी आसानी से किया जा सकता है, जैसे:


Sub DemoA()
Application.ScreenUpdating = False
Options.DefaultHighlightColorIndex = wdYellow
Dim RngA As Range, RngB As Range, i As Long, j As Long, strFnd As String
With ActiveDocument
  For i = 2 To .Paragraphs.Count - 1
    Set RngA = .Paragraphs(i - 1).Range
    Set RngB = .Range(.Paragraphs(i).Range.Start, .Range.End)
    With RngA
      strFnd = Trim(Split(.Text, vbCr)(0))
      If Len(strFnd) > 0 Then
        If .HighlightColorIndex <> wdYellow Then
          With RngB.Find
            .ClearFormatting
            .Replacement.ClearFormatting
            .Text = strFnd
            .Replacement.Text = "^&"
            .Replacement.Highlight = True
            .Format = True
            .Forward = True
            .Wrap = wdFindStop
            .MatchWildcards = True
            .Execute Replace:=wdReplaceAll
            If .Found = True Then RngA.HighlightColorIndex = wdBrightGreen
          End With
        End If
      End If
    End With
    If i Mod 100 = 0 Then DoEvents
  Next
End With
Application.ScreenUpdating = True
End Sub


For PC macro installation & usage instructions, see: http://www.gmayor.com/installing_macro.htm


300 पेज प्रोसेस करने के लिए बहुत ज़्यादा हैं, इसलिए तुरंत नतीजों की उम्मीद न करें। जहाँ डुप्लिकेट मिलेंगे, वहाँ सबसे पहले दिखने वाले पेज को चमकीले हरे रंग से हाइलाइट किया जाएगा; और डुप्लिकेट पेज को पीले रंग से हाइलाइट किया जाएगा।

मैक्रो चलाने के बाद, चमकीले हरे रंग से हाइलाइट किए गए किसी भी पैराग्राफ़ को चुनकर और रीडिंग हाइलाइट सेटिंग के साथ 'ढूँढें' का इस्तेमाल करके, आप मूल और उसके डुप्लिकेट, दोनों को संपादन के लिए देख पाएँगे। ऐसा करने के बाद, बस वर्ड के हाइलाइटिंग टूल का इस्तेमाल करके बाकी सभी हाइलाइट्स हटा दें। 

वाक्य ज़्यादा समस्याग्रस्त होते हैं, क्योंकि VBA को व्याकरणिक वाक्यों का कोई अंदाज़ा नहीं होता। उदाहरण के लिए, इस उदाहरण पर विचार करें:श्री स्मिथ ने डॉ. जॉन्स ग्रोसरी स्टोर पर $1,234.56 खर्च करके ये चीज़ें खरीदीं: 10.25 किलो आलू; 10 किलो एवोकाडो; और 15.1 किलो मिसेज़ ग्रीन्स माउंट प्लेज़ेंट मैकाडामिया नट्स।आपके और मेरे लिए, यह एक वाक्य के बराबर होगा; VBA के लिए यह 5 वाक्यों के बराबर होगा। अगर आप इसके साथ रहने को तैयार हैं, तो आप निम्न मैक्रो चला सकते हैं। शुरुआती और डुप्लिकेट हाइलाइट क्रमशः गुलाबी और चैती रंग के हैं । ज़्यादा लंबे इंतज़ार के लिए तैयार रहें।


 


Sub DemoB()
Application.ScreenUpdating = False
Options.DefaultHighlightColorIndex = wdTeal
Dim RngA As Range, RngB As Range, i As Long, j As Long, strFnd As String
With ActiveDocument
  For i = 2 To .Sentences.Count - 1
    Set RngA = .Sentences(i - 1)
    Set RngB = .Range(.Sentences(i).Start, .Range.End)
    With RngA
      strFnd = Trim(Split(.Text, vbCr)(0))
      If Len(strFnd) > 0 Then
        If .HighlightColorIndex <> wdTeal Then
          With RngB.Find
            .ClearFormatting
            .Replacement.ClearFormatting
            .Text = strFnd
            .Replacement.Text = "^&"
            .Replacement.Highlight = True
            .Format = True
            .Forward = True
            .Wrap = wdFindStop
            .MatchWildcards = True
            .Execute Replace:=wdReplaceAll
            If .Found = True Then RngA.HighlightColorIndex = wdPink
          End With
        End If
      End If
    End With
    If i Mod 100 = 0 Then DoEvents
  Next
End With
Application.ScreenUpdating = True
End Sub

No comments:

Post a Comment