Ihor quiere automatizar la inserción de un hipervínculo URL en un documento de Word. La URL se asociará con una frase, como «haga clic aquí». Primero copia la URL de un sitio web específico en el Portapapeles.

Luego graba una macro que abre el cuadro de diálogo Insertar hipervínculo (Ctrl + K) y pega en el campo correspondiente la URL del Portapapeles (Ctrl + V) y hace clic en Aceptar. Cuando más tarde ejecuta la macro, le da la misma URL cada vez que la ejecuta. Ihor quiere pegar una URL diferente en el cuadro de diálogo cada vez que ejecuta la macro, pero parece no saber cómo hacerlo.

Cuando graba una macro, lo que hace es muy literal: registra exactamente los pasos que realiza, incluida la forma en que se rellenan los cuadros de diálogo. La solución no es buscar formas de pegar nueva información en un cuadro de diálogo, sino ver cómo está creando su hipervínculo.

Esto es lo que se grabaría si insertara un hipervínculo con la grabadora de macros en ejecución:

Sub Macro1()

' ' Macro1 Macro ' '     ActiveDocument.Hyperlinks.Add Anchor:=Selection.Range, Address:= _         "//", SubAddress:="", ScreenTip:="", TextToDisplay:= _         "click here"

End Sub

Lo que Ihor quiere cambiar es el destino del hipervínculo, que se asigna a la propiedad Dirección; esto es lo que se «pega» en el campo Dirección del cuadro de diálogo. Para hacer esto, puede cambiar su macro de una manera simple, como esta:

Sub Macro2()

Dim sTemp As String     sTemp = "//"



ActiveDocument.Hyperlinks.Add Anchor:=Selection.Range, _       Address:= sTemp, SubAddress:="", ScreenTip:="", _       TextToDisplay:= "click here"

End Sub

Todo lo que se ha hecho en este ejemplo es eliminar algunos de los comentarios innecesarios al principio de la macro y crear una variable de cadena, sTemp, que ahora contiene el destino del hipervínculo. A continuación, esta variable se asigna a la propiedad Dirección. Entonces, para cambiar el objetivo, solo es necesario cambiar el valor de la variable sTemp, y hay varias formas de hacerlo.

Una forma es usar una función InputBox para crear su propio cuadro de diálogo, de esta manera:

Sub Macro3()

Dim sTemp As String     Dim sPrompt As String     Dim sTitle As String

sPrompt = "Enter the target for the hyperlink"

sTitle = "Hyperlink Destination"

sTemp = "//"

sTemp = InputBox(sPrompt, sTitle, sTemp)



ActiveDocument.Hyperlinks.Add Anchor:=Selection.Range, _       Address:= sTemp, SubAddress:="", ScreenTip:="", _       TextToDisplay:= "click here"

End Sub

Por supuesto, Ihor mencionó que en su proceso copia la URL en el Portapapeles. Si ese es el proceso que desea utilizar, es posible asignar la URL en función de lo que esté en el Portapapeles cuando se ejecuta la macro. Así es como harías eso:

Sub Macro4()

Dim sTemp As String     Dim MyData As DataObject     Set MyData = New DataObject

MyData.GetFromClipboard     sTemp = Trim(MyData.GetText(1))



ActiveDocument.Hyperlinks.Add Anchor:=Selection.Range, _       Address:= sTemp, SubAddress:="", ScreenTip:="", _       TextToDisplay:= "click here"

End Sub

Para utilizar el Portapapeles de esta manera, deberá configurar una referencia para Microsoft Forms en el Editor de VBA. (Elija Referencias en el menú Herramientas del Editor).

Tenga en cuenta también que todos estos ejemplos modifican lo que se asigna a la propiedad Dirección de su nuevo hipervínculo. Existe una buena posibilidad de que también desee cambiar la macro para modificar lo que está asignado a la propiedad TextToDisplay.

_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 (11906) se aplica a Microsoft Word 2007, 2010, 2013, 2016, 2019 y Word en Office 365. Puede encontrar una versión de este consejo para interfaz de menú anterior de Word aquí:

link: / word-Changing_What_Is_Pasted_in_a_Dialog_Box [Cambiar lo que se pega en un cuadro de diálogo].