Microsoft KB Archive/212576

From BetaArchive Wiki
Knowledge Base


WD2000: Deleting Hyperlinks from Collection Does Not Delete All

Article ID: 212576

Article Last Modified on 10/11/2006



APPLIES TO

  • Microsoft Word 2000 Standard Edition



This article was previously published under Q212576


SYMPTOMS

When you use the Visual Basic for Applications "For Each...Next" statement to delete hyperlinks by using the Hyperlinks collection, not all members of the collection are deleted.

WORKAROUND

Microsoft provides programming examples for illustration only, without warranty either expressed or implied. This includes, but is not limited to, the implied warranties of merchantability or fitness for a particular purpose. This article assumes that you are familiar with the programming language that is being demonstrated and with the tools that are used to create and to debug procedures. Microsoft support engineers can help explain the functionality of a particular procedure, but they will not modify these examples to provide added functionality or construct procedures to meet your specific requirements.
For more information about how to use the sample code in this article, click the article number below to view the article in the Microsoft Knowledge Base:

212536 OFF2000: How to Run Sample Code from Knowledge Base Articles


Instead of using the "For Each...Next" statement to remove the hyperlinks from your document, as in the following example:

Sub RemoveHyperLinks()

   For Each h In ActiveDocument.Hyperlinks
      h.Delete
   Next

   ' Verify how many hyperlinks are left in the document
   MsgBox ActiveDocument.Hyperlinks.Count

End Sub
                

use the "Do...Until...Loop" statement to remove the hyperlinks:

Sub RemoveHyperLinks()

   With ActiveDocument
      Do Until .Hyperlinks.Count = 0
         .Hyperlinks(1).Delete
      Loop

      ' Verify how many hyperlinks are left in the document
      MsgBox .Hyperlinks.Count
   End With

End Sub
                

-or-

Use the "For...Next" statement:

Sub RemoveHyperlinks()
Dim i As Long

  With ActiveDocument
    For i = 1 To .Hyperlinks.Count
      .Hyperlinks(1).Delete
    Next i

    ' verify how many hyperlinks are left in the document
    MsgBox .Hyperlinks.Count
  End With

End Sub
                

STATUS

Microsoft has confirmed that this is a problem in the Microsoft products that are listed at the beginning of this article.

REFERENCES

For additional information about getting help with Visual Basic for Applications, click the article numbers below to view the articles in the Microsoft Knowledge Base:

212623 WD2000: Macro Programming Resources


226118 OFF2000: Programming Resources for Visual Basic for Applications



Additional query words: vb vba vbe

Keywords: kbbug kbhowto kbmacroexample kbnofix kbprogramming KB212576