Pular para o conteúdo

Uso de referências externas e hiperlinks

O XLS Padlock protege uma planilha por arquivo EXE. Se a sua planilha utiliza referências externas ou requer arquivos adicionais, você deve atualizar os seus caminhos para garantir que funcionem corretamente após a compilação.

O XLS Padlock oferece duas formas principais de lidar com arquivos externos:

  • Adicioná-los como Companion Files.
  • Utilizar caminhos dinâmicos em hiperlinks ou código VBA.

Para gerenciar caminhos dinâmicos, o XLS Padlock oferece uma função chamada PLEvalVar que pode ser utilizada diretamente em fórmulas do Excel ou chamada a partir do VBA.

Esta função recebe um argumento de cadeia de texto:

  • =PLEvalVar(“EXEPath”) retorna o caminho completo para a pasta que contém o arquivo EXE da aplicação (com a barra invertida final).
  • =PLEvalVar(“XLSPath”) retorna o caminho completo para a pasta que contém a planilha compilada em tempo de execução (com a barra invertida final).

Você tem hiperlinks para arquivos de imagem externos. Esses arquivos de imagem estão na mesma pasta que o arquivo XLS da planilha (ou em uma subpasta).

Célula da planilha com um hiperlink apontando para um arquivo de imagem externo ao lado da planilha

Você tem um hiperlink em uma célula definido por:

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

Para que funcione com o XLS Padlock, você deve copiar todos os arquivos de imagem externos para a mesma pasta que o arquivo EXE gerado com o XLS Padlock. Em seguida, você precisa modificar todos os hiperlinks para inserir a função PLEvalVar(“EXEPath”) que retorna o caminho para essa pasta.

No nosso caso, isso se tornará:

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

Isso também funciona para arquivos em subpastas. Um link como:

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

…deve ser alterado para:

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

Para acessar arquivos externos com VBA, você pode utilizar uma função auxiliar que constrói o caminho completo para um arquivo localizado na mesma pasta que o EXE.

👉 Para obter uma explicação detalhada e um trecho de código reutilizável, consulte o guia sobre como obter o caminho para um arquivo na pasta do 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