अपेक्षित
मैं एक एमएस वर्ड दस्तावेज़ में एक ही पाठ की सभी घटनाओं को खोजना चाहता हूं, प्रत्येक घटना को हाइपरलिंक बनाता हूं और मेरे हाइपरलिंक शैली को मेरे किसी एक बदलाव के लिए बदल देता हूं।
जो मेरे पास है
जैसा कि मुझे इस बात का कोई पता नहीं है कि समग्र रूप से उपरोक्त आवश्यकता को कैसे प्राप्त किया जाए, मैंने इसका एक भाग शुरू किया, जिसका अर्थ है एक एकल उदाहरण खोजना और उसे अपनाना।
इसलिए, मैंने एक मैक्रो रिकॉर्ड किया, जिसके परिणामस्वरूप निम्न कोड था। उस कोड को मैंने इसलिए अनुकूलित किया ताकि उप हाइपरलिंकटेक्स्ट और हाइपरलिंक सबड्रेस के लिए पैरामीटर ले सके :
Sub AutoDetectHyperlinksForText(hyperlinkText As String, subaddress As String, style As String)
Selection.Find.ClearFormatting
With Selection.Find
.Text = hyperlinkText
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute
ActiveDocument.Hyperlinks.Add Anchor:=Selection.Range, Address:="", _
subaddress:=subaddress, ScreenTip:="", TextToDisplay:= _
hyperlinkText
Selection.MoveLeft Unit:=wdWord, Count:=1, Extend:=wdExtend
Selection.Style = ActiveDocument.Styles(style)
End Sub
इसके साथ कई शब्द इंस्टेंस के लिए उप को कॉल करना आसान है , जैसे:
Call AutoDetectHyperlinksForText("broadcasts", "_broadcastService", "Subtle Emphasis")
सवाल
मैं इस मैक्रो को कैसे अनुकूलित कर सकता हूं ताकि यह पूरे दस्तावेज़ की जांच करे?
बोनस का सवाल
क्या उपरोक्त स्क्रिप्ट को संशोधित करने का कोई तरीका है ताकि मैं अपने चयन को संग्रहीत कर सकूं, और उसकी आवश्यकता को दूर कर सकूं .MoveLeft
?
छद्मकोड में जो कुछ इस तरह होगा:
Dim mySelect as Selection
mySelect = Selection.Find.Execute
ActiveDocument.Hyperlinks.Add Anchor:=mySelect.Range, Address:="", _
subaddress:=subaddress, ScreenTip:="", TextToDisplay:= _
hyperlinkText
mySelect.Style = ActiveDocument.Styles("Subtle Emphasis")