Microsoft Office Forums

Go Back   Microsoft Office Forums > >

Reply
 
Thread Tools Display Modes
  #1  
Old 12-30-2020, 10:44 AM
alex100 alex100 is offline Remove the hyperlinks on paragraph marks Windows 7 64bit Remove the hyperlinks on paragraph marks Office 2016
Advanced Beginner
Remove the hyperlinks on paragraph marks
 
Join Date: May 2020
Posts: 79
alex100 is on a distinguished road
Default Remove the hyperlinks on paragraph marks

How can I remove the hyperlinks on paragraph marks, please?



What I have so far is this code...

Code:
Selection.Find.ClearFormatting
Selection.Find.Style = ActiveDocument.Styles("Hyperlink")
Selection.Find.Replacement.ClearFormatting
With Selection.Find
    .Text = "^p"
    .Replacement.Text = ""
    .Forward = True
    .Wrap = wdFindContinue
    .Format = True
    .MatchCase = False
    .MatchWholeWord = False
    .MatchWildcards = False
    .MatchSoundsLike = False
    .MatchAllWordForms = False
    .Execute Replace:=wdReplaceAll
 End With
The problem is that it will remove both the hyperlink and the paragraph. What I need is to preserve the paragraph and remove only the hyperlink.

Alex
Reply With Quote
  #2  
Old 12-30-2020, 01:52 PM
gmaxey gmaxey is offline Remove the hyperlinks on paragraph marks Windows 10 Remove the hyperlinks on paragraph marks Office 2016
Expert
 
Join Date: May 2010
Location: Brasstown, NC
Posts: 1,598
gmaxey is just really nicegmaxey is just really nicegmaxey is just really nicegmaxey is just really nicegmaxey is just really nice
Default

Hyperlink is a character style so I don't really know why you would have applied it to the paragraph marks in the first place:

Code:
Sub ScratchMacro()
'A basic Word macro coded by Greg Maxey
Dim oRng As Range
  Selection.Find.ClearFormatting
  Selection.Find.Replacement.ClearFormatting
  Set oRng = ActiveDocument.Range
  With oRng.Find
    .Text = "^p"
    .Style = "Hyperlink"
    While .Execute
      oRng.Select
      Selection.ClearCharacterAllFormatting
      oRng.Collapse wdCollapseEnd
    Wend
 End With
lbl_Exit:
  Exit Sub
End Sub
__________________
Greg Maxey
Please visit my web site at http://www.gregmaxey.com/
Reply With Quote
  #3  
Old 12-31-2020, 01:23 AM
alex100 alex100 is offline Remove the hyperlinks on paragraph marks Windows 7 64bit Remove the hyperlinks on paragraph marks Office 2016
Advanced Beginner
Remove the hyperlinks on paragraph marks
 
Join Date: May 2020
Posts: 79
alex100 is on a distinguished road
Default

Quote:
Originally Posted by gmaxey View Post
Hyperlink is a character style so I don't really know why you would have applied it to the paragraph marks in the first place
They can sometimes be found after pasting web content into Word. So, I'm not the one applying them... :-)

In regards to your script... i hope I'm not missing something, but it doesn't seem to work. It does match all the hyperlinked paragraphs, but the links are still there after processing.

Alex
Reply With Quote
  #4  
Old 12-31-2020, 07:51 AM
gmaxey gmaxey is offline Remove the hyperlinks on paragraph marks Windows 10 Remove the hyperlinks on paragraph marks Office 2016
Expert
 
Join Date: May 2010
Location: Brasstown, NC
Posts: 1,598
gmaxey is just really nicegmaxey is just really nicegmaxey is just really nicegmaxey is just really nicegmaxey is just really nice
Default

Sorry. I thought you were just trying to eliminate the hyperlink character style from the paragraph marks. To actually remove all hyperlinks contained in such paragraphs you could revise as:

Code:
Sub ScratchMacro()
'A basic Word macro coded by Greg Maxey
Dim oRng As Range
Dim lngHL As Long
  Selection.Find.ClearFormatting
  Selection.Find.Replacement.ClearFormatting
  Set oRng = ActiveDocument.Range
  With oRng.Find
    .Text = "^p"
    .Style = "Hyperlink"
    While .Execute
      oRng.Select
      Selection.ClearCharacterAllFormatting
      For lngHL = oRng.Paragraphs(1).Range.Hyperlinks.Count To 1 Step -1
        oRng.Paragraphs(1).Range.Hyperlinks(lngHL).Delete
      Next lngHL
      oRng.Collapse wdCollapseEnd
    Wend
 End With
lbl_Exit:
  Exit Sub
End Sub
__________________
Greg Maxey
Please visit my web site at http://www.gregmaxey.com/
Reply With Quote
  #5  
Old 12-31-2020, 09:00 AM
alex100 alex100 is offline Remove the hyperlinks on paragraph marks Windows 7 64bit Remove the hyperlinks on paragraph marks Office 2016
Advanced Beginner
Remove the hyperlinks on paragraph marks
 
Join Date: May 2020
Posts: 79
alex100 is on a distinguished road
Default

Wonderful piece of code, thank you very much!

Alex
Reply With Quote
  #6  
Old 11-05-2024, 02:13 AM
Chain Chain is offline Remove the hyperlinks on paragraph marks Windows 11 Remove the hyperlinks on paragraph marks Office 2021
Novice
 
Join Date: Nov 2024
Posts: 2
Chain is on a distinguished road
Default

I tried running this, and it's worth clarifying that this removes all hyperlinks that happen to span a paragraph break. It removes the entire hyperlink, not just from the paragraph break. Personally I just need it removed from the paragraph break, so it did not solve my version of the problem.

It's also worth noting that the solution relies on the hyperlink having a specific character style. This might not always be the case, and the name of the default style varies with language settings. This is a potential problem for more wide-spread use.
Reply With Quote
  #7  
Old 11-05-2024, 08:16 AM
Chain Chain is offline Remove the hyperlinks on paragraph marks Windows 11 Remove the hyperlinks on paragraph marks Office 2021
Novice
 
Join Date: Nov 2024
Posts: 2
Chain is on a distinguished road
Post

I need to remove the hyperlinks from paragraph marks (as this causes us some issues).
Sometimes a hyperlink at the end of a paragraph might extend to include the paragraph mark, but it could also be that a single hyperlink is applied across multiple paragraphs (rare, but the code needs to account for this).

I can't really code, so have attempted to use Copilot for this (with manual troubleshooting), but after a lot of trial-and-error, I keep running into the same issues.

This is the current version:

Code:
Sub ReapplyHyperlinksWithoutRemovingText1()
    Dim doc As Document
    Dim hl As hyperlink
    Dim hlRange As Range
    Dim hlText As String
    Dim startPos As Long
    Dim endPos As Long
    Dim i As Long
    Dim hlAddress As String
    Dim hlSubAddress As String
    Dim partRange As Range
    
    Set doc = ActiveDocument
    
    ' Loop through each hyperlink in the document
    For Each hl In doc.Hyperlinks
        Set hlRange = hl.Range
        hlText = hlRange.Text
        startPos = hlRange.Start
        endPos = hlRange.End
        hlAddress = hl.Address
        hlSubAddress = hl.SubAddress
        
        ' Check if the hyperlink text contains a paragraph break
        If InStr(hlText, vbCr) > 0 Or InStr(hlText, vbLf) > 0 Then
            ' Remove the hyperlink
            hl.Delete
            
            ' Split the text by paragraph breaks
            Dim parts() As String
            parts = Split(hlText, vbCr)
            
            ' Reapply hyperlink to the first part only
            If parts(0) <> "" Then
                Set partRange = doc.Range(startPos, startPos + Len(parts(0)))
                partRange.Hyperlinks.Add _
                    Anchor:=partRange, _
                    Address:=hlAddress, _
                    SubAddress:=hlSubAddress, _
                    TextToDisplay:=parts(0)
            End If
        End If
    Next hl
End Sub
It splits such hyperlink texts into multiple strings (excluding the paragraph marks) and reapplies the hyperlink to each part (first removing the original hyperlink). After reapplying the hyperlink to the first part of a multi-paragraph link, it should update the startPos to be at the start of the next paragraph/part, but the code for this (startPos = partRange.End + 1) seemingly ended up inside the field code of the added hyperlink, throwing everything off. So that's why the macro now just fixes the first string in parts(). This is accecptable if there's no easy solution here (since actual multi-paragraph links are super rare).

Next, this code only handles this in the body text of the document, but I need it to also do this for footnotes. This I was also unable to get working. It was essentially the exact code, but wrapped inside "For Each footnote In doc.Footnotes; For Each hl In footnote.Range.Hyperlinks" - and it did find and remove the hyperlink in a footnote, but it then reapplied the hyperlink to the first link in the body text and not the footnote. No idea why.



Anyone able to help with at least getting this to run on footnots? It would be super helpful!
Attached Files
File Type: docx Hyperlinks test document.docx (33.2 KB, 3 views)
Reply With Quote
Reply



Similar Threads
Thread Thread Starter Forum Replies Last Post
Remove the hyperlinks on paragraph marks Remove paragraph marks in Excel from Word-sourced text Peterson Excel 6 08-18-2020 11:36 PM
Help me, remove the marks occur at begin and last paragraph ngocanhwdn Word 6 06-25-2019 07:57 AM
Remove the hyperlinks on paragraph marks Paragraph marks appear suddently leonardevens Word 1 07-13-2015 12:14 PM
Finding Paragraph Marks BZee Word 4 02-14-2015 02:12 PM
Remove the hyperlinks on paragraph marks Hide paragraph format marks Cara Word 2 04-07-2011 10:26 AM

Other Forums: Access Forums

All times are GMT -7. The time now is 01:42 PM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, vBulletin Solutions Inc.
Search Engine Optimisation provided by DragonByte SEO (Lite) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
MSOfficeForums.com is not affiliated with Microsoft