Ir al contenido

Uso de referencias externas e hipervínculos

XLS Padlock protege un libro por archivo EXE. Si su libro utiliza referencias externas o requiere archivos adicionales, debe actualizar sus rutas para garantizar que funcionen correctamente después de la compilación.

XLS Padlock ofrece dos formas principales de gestionar los archivos externos:

  • Añadirlos como Companion Files.
  • Utilizar rutas dinámicas en hipervínculos o código VBA.

Para gestionar rutas dinámicas, XLS Padlock ofrece una función llamada PLEvalVar que puede utilizarse directamente en fórmulas de Excel o invocarse desde VBA.

Esta función toma un argumento de cadena:

  • =PLEvalVar(“EXEPath”) devuelve la ruta completa a la carpeta que contiene el archivo EXE de la aplicación (con la barra invertida final).
  • =PLEvalVar(“XLSPath”) devuelve la ruta completa a la carpeta que contiene el libro compilado en tiempo de ejecución (con la barra invertida final).

Tiene hipervínculos a archivos de imagen externos. Estos archivos de imagen están en la misma carpeta que el archivo XLS del libro (o en una subcarpeta).

Celda de la hoja con un hipervínculo a un archivo de imagen externo junto al libro

Tiene un hipervínculo en una celda definido por:

=HYPERLINK("Penguins.jpg","Penguins")

Para que funcione con XLS Padlock, debe copiar todos los archivos de imagen externos en la misma carpeta que el archivo EXE generado con XLS Padlock. A continuación, tiene que modificar todos los hipervínculos para insertar la función PLEvalVar(“EXEPath”) que devuelve la ruta a esa carpeta.

En nuestro caso, esto se convertirá en:

=HYPERLINK(PLEvalVar("EXEPath") & "Penguins.jpg", "Penguins")

Esto también funciona para archivos en subcarpetas. Un enlace como:

=HYPERLINK("My Pictures\\Penguins.jpg", "Penguins")

…debe cambiarse a:

=HYPERLINK(PLEvalVar("EXEPath") & "mypictures\\Penguins.jpg", "Penguins")

Para acceder a archivos externos con VBA, puede utilizar una función auxiliar que construye la ruta completa a un archivo ubicado en la misma carpeta que el EXE.

👉 Para obtener una explicación detallada y un fragmento de código reutilizable, consulte la guía sobre cómo obtener la ruta a un archivo en la carpeta del EXE.

Public Function GetPathToFileInEXEFolder(ByVal Filename As String) As String
Dim XLSPadlock As Object
Dim exePath As String
On Error GoTo Err
Set XLSPadlock = Application.COMAddIns("GXLSForm.GXLSFormula").Object
exePath = XLSPadlock.PLEvalVar("EXEPath")
GetPathToFileInEXEFolder = Application.BuildPath(exePath, Filename)
Exit Function
Err:
GetPathToFileInEXEFolder = ""
End Function