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).
Ejemplo 1
Section titled “Ejemplo 1”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).

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")
Ejemplo 2
Section titled “Ejemplo 2”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 FunctionErr: GetPathToFileInEXEFolder = ""End Function