VBA Hipervínculos
In this Article
- Hipervínculos en VBA
- Añadir un hipervínculo con VBA
- Añadir texto para mostrar con VBA
- Añadir un ScreenTip con VBA
- Eliminar un Hipervínculo con VBA
- Eliminar todos los hipervínculos de una hoja de cálculo
- Seguir un Hipervínculo de un Sitio Web Usando VBA
- Seguir un hipervínculo a una carpeta de su disco duro
- Seguir un hipervínculo a un archivo en la unidad de disco
- Ir a una celda de otra hoja del mismo libro de trabajo
- Mostrar todos los hipervínculos de una hoja de trabajo
- Mostrar todos los Hipervínculos de un Libro de Trabajo
- Uso del método FollowHyperlink para crear correos electrónicos
- Añadir un Hipervínculo a una Autoforma en Excel
- Inserción de la fórmula de hipervínculo en una celda utilizando VBA
- Añadir un hipervínculo a un botón en Access
- Creando un Hipervínculo desde una Selección en Word
Este tutorial de VBA cubre las diferentes formas de trabajar con hipervínculos en VBA.
Hipervínculos en VBA
Con VBA, usted puede agregar hipervínculos, eliminar hipervínculos, crear correos electrónicos usando hipervínculos y abrir archivos usando hipervínculos.
Añadir un hipervínculo con VBA
El método Hyperlinks.Add añade un hipervínculo a una celda utilizando VBA. El siguiente código añadirá un hipervínculo a la celda A1:
Sub añadir_hipervinculo_a_celda()
ActiveSheet.Hyperlinks.Add Range("A1"), Address:="https://www.automateexcel.com/excel/"
End Sub
El resultado es:
Añadir texto para mostrar con VBA
Puede añadir un texto para mostrar a su hipervínculo con VBA. Si utilizara la funcionalidad de la hoja de cálculo, insertaría un hipervínculo y luego añadiría un texto para mostrar en el cuadro de diálogo proporcionado. El código siguiente muestra cómo añadir texto para mostrar a su hipervínculo utilizando VBA:
Sub mostrar_texto_en_hipervinculo()
ActiveSheet.Hyperlinks.Add Range("A1"), Address:="https://www.automateexcel.com/excel/", TextToDisplay:="Automate Excel"
End Sub
El resultado es:
Añadir un ScreenTip con VBA
Puede añadir un ScreenTip a su hipervínculo que el espectador verá cuando pase el ratón por encima del enlace. El código siguiente muestra cómo añadir un ScreenTip a su hipervínculo utilizando VBA:
Sub añadir_ScreenTip_al_hipervinculo()
ActiveSheet.Hyperlinks.Add Range("A1"), Address:="https://www.automateexcel.com/excel/", _
TextToDisplay:="Automate Excel", ScreenTip:="Este es un enlace para Automate Excel "
End Sub
El resultado es:
Eliminar un Hipervínculo con VBA
El método Hyperlinks.Delete se puede utilizar para eliminar un hipervínculo de una celda. El siguiente código eliminará el hipervínculo de la celda A1 y el texto de la celda. Ten en cuenta que al eliminar el hipervínculo, no se elimina el texto en sí, por lo que si quieres que se elimine el texto también tienes que utilizar el método Clear.
Sub borrar_hiperenlace_en_celda()
Range("A1").Hyperlinks.Delete
Range("A1").Clear
End Sub
Eliminar todos los hipervínculos de una hoja de cálculo
También puedes eliminar todos los hipervínculos de tu hoja de cálculo utilizando el método Hyperlinks.Delete. El siguiente código borrará todos los hipervínculos en la primera hoja de trabajo de tu libro:
Sub EliminarTodosLosHiperenlacesEnHoja()
ThisWorkbook.Sheets(1).Hyperlinks.Delete
End Sub
Seguir un Hipervínculo de un Sitio Web Usando VBA
El siguiente código le permite abrir la dirección de un sitio web, en una nueva ventana en su navegador utilizando el método FollowHyperlink en su libro de trabajo:
Sub SeguirHiperenlaceParaSitioWeb()
ActiveWorkbook.FollowHyperlink Address:="https://www.automateexcel.com/excel", NewWindow:=True
End Sub
Seguir un hipervínculo a una carpeta de su disco duro
El siguiente código abrirá una carpeta llamada ExcelFiles en el Escritorio utilizando el método FollowHyperlink:
Sub SeguirHipervínculoParaCarpetaEnDrive()
ActiveWorkbook.FollowHyperlink Address:="C:\Carpeta VBA"
End Sub
Seguir un hipervínculo a un archivo en la unidad de disco
El siguiente código abrirá un archivo de Excel llamado WorkbookOne en la carpeta llamada ExcelFiles en el Escritorio usando el método FollowHyperlink:
Sub SeguirHipervínculoParaArchivo()
ActiveWorkbook.FollowHyperlink Address:="C:\Carpeta VBA\Libro1.xlsm", NewWindow:=True
End Sub
Ir a una celda de otra hoja del mismo libro de trabajo
Puedes añadir un hipervínculo a una celda en una hoja que te lleve a otra hoja, en el mismo libro de trabajo con VBA. Digamos que estás en la Hoja1, celda A1 de tu libro de trabajo y quieres insertar un hipervínculo a la Hoja2, celda B2 del mismo libro de trabajo, puedes usar la propiedad Subdirección para hacerlo. El siguiente código demuestra cómo hacerlo:
Sub ir_a_otra_celda_en_otra_hoja_en_mismo_libro()
ActiveSheet.Hyperlinks.Add Range("A1"), Address:="", SubAddress:="'" & Hoja2.Name _
& "'!B2", TextToDisplay:="Clic aquí para ir a la Hoja2, celda B2 de este mismo libro"
End Sub
Mostrar todos los hipervínculos de una hoja de trabajo
Puedes acceder a la colección de hipervínculos y mostrar todos los hipervínculos de tu hoja de trabajo en la Ventana inmediato en el Editor VBA. Primero debes presionar CTRL+G en tu teclado o ir a Ver>Ventana inmediato en el Editor VBE, para ver la Ventana inmediato. El siguiente código muestra cómo ver los hipervínculos en su hoja de trabajo en la Ventana inmediato:
Sub MostrarTodosLosHiperenlacesEnLaHojaDeTrabajo()
Dim hoja As Worksheet
Set hoja = ThisWorkbook.Sheets("Hoja1")
For Each enlace In hoja.Hyperlinks
Debug.Print enlace.Address
Next enlace
End Sub
Los resultados se muestran en la ventana inmediato.
Mostrar todos los Hipervínculos de un Libro de Trabajo
Puede acceder a la colección de hipervínculos, para recorrer y mostrar todos los hipervínculos de su Libro de Trabajo en un Cuadro de Mensajes. El siguiente código muestra cómo hacer esto, y utiliza un bucle anidado para lograrlo:
Sub MostrarTodosLosHiperenlacesEnElLibroDeTrabajo()
Dim hoja As Worksheet
For Each hoja In ActiveWorkbook.Worksheets
For Each enlace In hoja.Hyperlinks
MsgBox enlace.Address
Next enlace
Next hoja
End Sub
Uso del método FollowHyperlink para crear correos electrónicos
También puede crear correos electrónicos utilizando el método FollowHyperlink. El siguiente código le mostrará cómo crear correos electrónicos utilizando el método FollowHyperlink en VBA:
Sub enviar_email_usando_Hyperlink()
Dim mensaje As String
mensaje = "mailto:" & "person@email.com" & "?" & "subject=" & "Hola" & "&" & "body=" & "Como estás?"
ActiveWorkbook.FollowHyperlink (mensaje)
End Sub
El resultado es:
Añadir un Hipervínculo a una Autoforma en Excel
Puede añadir un hipervínculo a una Autoforma en Excel para que cuando el usuario haga clic en la forma sea llevado a una dirección de sitio web. El siguiente código crea un rectángulo redondeado, añade el texto al rectángulo y añade un hipervínculo al rectángulo:
Sub añadir_hipervinculo_a_forma()
Dim forma As Shape
Set documento = Worksheets("Hoja1")
Set forma = documento.Shapes.AddShape(msoShapeRoundedRectangle, 100, 100, 90, 30)
With forma
.TextFrame.Characters.Text = "Automate Excel"
End With
ActiveSheet.Hyperlinks.Add Anchor:=forma, Address:="https://www.automateexcel.com/excel"
End Sub
El resultado es:
Inserción de la fórmula de hipervínculo en una celda utilizando VBA
Digamos que tienes un título de la publicación en la celda A4 y un enlace de la publicación en la celda B4 como se muestra en la imagen de abajo.
Un rápido recordatorio de la sintaxis de la fórmula de Hipervínculo de la hoja de trabajo es:
HYPERLINK(ubicación_del_enlace, [nombre])
ubicación_del_enlace – Es el enlace al documento, archivo, lugar en el libro de trabajo o sitio en línea.
nombre –(Opcional) – El texto o valor numérico que se muestra en la celda.
En la celda C4, quieres añadir el hipervínculo con un texto amigable para mostrar, ahora normalmente introducirías la fórmula =HYPERLINK(B4,A4) en C4 para obtener lo siguiente:
En su lugar, podrías utilizar VBA para conseguir el mismo resultado, e insertar esta fórmula en la celda, en la Hoja1 con el siguiente código:
Sub añadir_formula_hipervinculo_en_celda()
ActiveWorkbook.Worksheets("Hoja1").Range("C4").formula = "=hyperlink(B4,A4)"
End Sub
Añadir un hipervínculo a un botón en Access
VBA permite trabajar con hipervínculos en Access también. Digamos que tenemos un botón en un formulario y cuando el usuario hace clic en ese botón queremos que sea llevado a un sitio web. Una forma de hacerlo es a través del método Application.FollowHyperlink. Tenemos nuestro formulario de ejemplo con un botón llamado btEnlace que se muestra a continuación.
El código para este botón sería
Private Sub btEnlace_Click()
Application.FollowHyperlink ("https://www.automateexcel.com/excel/")
End Sub
Creando un Hipervínculo desde una Selección en Word
Usted puede trabajar con hipervínculos en Word VBA también. Digamos que tenemos un texto en Word que dice «Haga clic aquí para ser llevado al sitio web de Automate Excel», que es seleccionado como se muestra a continuación.
Para convertir este texto en un hipervínculo utilizando VBA, puede utilizar el siguiente código:
Private Sub convertir_seleccion_en_hipervinculo()
ActiveDocument.Hyperlinks.Add Anchor:=Selection.Range, _
Address:="https://www.automateexcel.com/excel/", ScreenTip:="Clic aquí por favor", Target:=NewWindow
End Sub
El resultado es: