Contando enlaces internos (Microsoft Word)
Word le permite establecer vínculos en un documento a un documento externo oa otros lugares dentro del documento actual. Peter está buscando una forma de contar solo los enlaces internos dentro de un documento y se pregunta si hay una forma de hacerlo.
La única forma en que puede hacer esto es utilizando una macro para recorrer cada hipervínculo en su documento. Afortunadamente, esto se hace fácilmente examinando los elementos de la colección Hipervínculos. Cada objeto de hipervínculo tiene una variedad de propiedades que se pueden configurar, según las características del vínculo. De particular importancia son las propiedades Dirección y Subdirección.
La propiedad Dirección (como sugiere su nombre) es la dirección de destino del enlace. Normalmente, esto es algo así como una URL (como en /), pero también podría ser el nombre de un archivo en una unidad accesible desde su sistema o una dirección de correo electrónico (como en mailto: [email protected]). Debido a que la propiedad Dirección puede tener varios propósitos, no puede verificar específicamente la existencia de caracteres reveladores, como el prefijo «http». Si falta el prefijo, el vínculo puede ser externo al documento actual porque puede hacer referencia a un archivo diferente en su sistema.
Sin embargo, hay una instancia en la que el campo Dirección estará en blanco, si el vínculo es a un marcador dentro del documento actual. Si está en blanco, la propiedad SubAddress se establecerá en el nombre del marcador al que se hace referencia en el enlace. Por supuesto, si el enlace es a un marcador específico en un documento diferente, se establecerán las propiedades Dirección y Subdirección.
Para tener una idea de la información almacenada con cada objeto de hipervínculo, eche un vistazo a la siguiente macro breve. Recorre cada enlace y muestra información sobre cada uno.
Sub LinkInfo() Dim h As Hyperlink Dim sTemp As String For Each h In ActiveDocument.Hyperlinks sTemp = h.TextToDisplay & vbCrLf sTemp = sTemp & h.Address & vbCrLf sTemp = sTemp & h.SubAddress MsgBox sTemp Next h End Sub
Por tanto, el método más sencillo para determinar el número de enlaces internos dentro de un documento (en otras palabras, enlaces a marcadores dentro del documento actual) es examinar la propiedad Dirección de cada objeto de hipervínculo.
Si la propiedad está vacía, entonces puede asumir con seguridad que el enlace es interno.
Sub InternalLinks1() Dim h As Hyperlink Dim lInternal As Long lInternal = 0 If ActiveDocument.Hyperlinks.Count > 0 Then For Each h In ActiveDocument.Hyperlinks If h.Address = "" Then lInternal = lInternal + 1 Next hp End If MsgBox lInternal & " hyperlinks are internal" _ & " out of a total of " & ActiveDocument.Hyperlinks.Count End Sub
Si quisiera armar una lista de los objetivos reales para los enlaces internos, sería una adición fácil a la macro buscar, dentro del ciclo For Each, en cada propiedad SubAddress y agregarla a lo que haya mostrado al final de la macro.
Por supuesto, los hipervínculos no se limitan a aparecer únicamente dentro del cuerpo del documento. También puede tener hipervínculos en otros elementos del documento, como encabezados, pies de página, notas al final y cuadros de texto. La siguiente variación de la macro cuenta todos los enlaces que encuentra en cualquiera de estas áreas (StoryRanges) en el documento.
Sub InternalLinks2() Dim h As Hyperlink Dim lInternal As Long Dim lTotal As Long Dim aStory As Range lTotal = 0 lInternal = 0 For Each aStory In ActiveDocument.StoryRanges lTotal = lTotal + aStory.Hyperlinks.Count If aStory.Hyperlinks.Count > 0 Then For Each h In aStory.Hyperlinks If h.Address = "" Then lInternal = lInternal + 1 Next h End If Next aStory MsgBox lInternal & " hyperlinks are internal" _ & " out of a total of " & lTotal End Sub
_Nota: _
Si desea saber cómo usar las macros descritas en esta página (o en cualquier otra página de los sitios WordTips), he preparado una página especial que incluye información útil.
link: / wordribbon-WordTipsMacros [Haga clic aquí para abrir esa página especial en una nueva pestaña del navegador]
.
WordTips es su fuente de formación rentable en Microsoft Word.
(Microsoft Word es el software de procesamiento de texto más popular del mundo). Este consejo (12814) se aplica a Microsoft Word 2007, 2010 y 2013.