किसी पाठ के सभी उदाहरण ढूंढें और उसे मैक्रो के साथ हाइपरलिंक बनाएं


1

अपेक्षित

मैं एक एमएस वर्ड दस्तावेज़ में एक ही पाठ की सभी घटनाओं को खोजना चाहता हूं, प्रत्येक घटना को हाइपरलिंक बनाता हूं और मेरे हाइपरलिंक शैली को मेरे किसी एक बदलाव के लिए बदल देता हूं।

जो मेरे पास है

जैसा कि मुझे इस बात का कोई पता नहीं है कि समग्र रूप से उपरोक्त आवश्यकता को कैसे प्राप्त किया जाए, मैंने इसका एक भाग शुरू किया, जिसका अर्थ है एक एकल उदाहरण खोजना और उसे अपनाना।

इसलिए, मैंने एक मैक्रो रिकॉर्ड किया, जिसके परिणामस्वरूप निम्न कोड था। उस कोड को मैंने इसलिए अनुकूलित किया ताकि उप हाइपरलिंकटेक्स्ट और हाइपरलिंक सबड्रेस के लिए पैरामीटर ले सके :

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")

जवाबों:


1

यह शब्द "google" (googles या googled नहीं) और इसे हाइपरलिंक करेगा http:\\google.com

यह शैली को भी लागू करता है

Sub FindAndHyperlink()
    'define the style
    Dim strStyle As String
    strStyle = "Subtle Emphasis"
    'set the search range
    Dim rngSearch As Range
    Set rngSearch = ActiveDocument.Range
    'set the search string
    Dim strSearch As String
    strSearch = "google"
    'set the target address for the hyperlink
    Dim strAddress As String
    strAddress = "http:\\google.com"

    With rngSearch.Find
        Do While .Execute(findText:=strSearch, MatchWholeWord:=True, Forward:=True) = True
            With rngSearch 'we will work with what is found as it will be the selection
                ActiveDocument.Hyperlinks.Add Anchor:=rngSearch, Address:=strAddress
                .Style = ActiveDocument.Styles(strStyle) 'throw the style on it after the link
            End With
            rngSearch.Collapse Direction:=wdCollapseEnd
            'keep it moving
        Loop
    End With
End Sub

जाहिर है, यदि आप तर्कों को पारित करना चाहते हैं, तो आप ऐसा कर सकते हैं, इसलिए इसे अपने मापदंडों के साथ कहा जा सकता है, लेकिन यह इस आधार पर है कि आपको क्या करना चाहिए।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.