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