Pular para o conteúdo

Livro de receitas da API VBA para XLS Padlock

Este tópico oferece uma coleção completa de trechos de código VBA (“receitas”) para o controle avançado da sua aplicação protegida em tempo de execução. Com a API VBA do XLS Padlock, você pode recuperar informações do sistema, gerenciar o salvamento e o carregamento, personalizar a interface do usuário e interagir com recursos online.

Os dois objetos principais da API são:, Application.COMAddIns("GXLSForm.GXLSFormula").Object para a maior parte das informações em tempo de execução., Application.COMAddIns("GXLS.GXLSPLock").Object para as operações relacionadas ao salvamento.

Cada receita a seguir fornece uma função ou sub-rotina VBA pronta para uso.


Estas receitas ajudam você a recuperar informações sobre o ambiente e o estado da aplicação.

Utilize isto para confirmar que o seu código está sendo executado dentro de uma aplicação protegida criada pelo XLS Padlock.

Public Function XLSPadlockAvailable() As Boolean
Dim XLSPadlock As Object
On Error Resume Next
Set XLSPadlock = Application.COMAddIns("GXLSForm.GXLSFormula").Object
If Not XLSPadlock Is Nothing Then
XLSPadlockAvailable = XLSPadlock.IsProtected()
Else
XLSPadlockAvailable = False
End If
End Function

Obter o nome do arquivo EXE da aplicação

Section titled “Obter o nome do arquivo EXE da aplicação”

Recupera o nome do arquivo .exe em execução.

Public Function GetEXEFilename() As String
Dim XLSPadlock As Object
On Error GoTo Err
Set XLSPadlock = Application.COMAddIns("GXLSForm.GXLSFormula").Object
GetEXEFilename = XLSPadlock.PLEvalVar("EXEFilename")
Exit Function
Err:
GetEXEFilename = ""
End Function

Obter a versão do arquivo EXE e do produto

Section titled “Obter a versão do arquivo EXE e do produto”

Recupera as cadeias de versão que você definiu na seção “EXE Version Info” do XLS Padlock.

Public Function ReadVersionInfo(infoType As String) As String
Dim XLSPadlock As Object
On Error GoTo Err
Set XLSPadlock = Application.COMAddIns("GXLSForm.GXLSFormula").Object
ReadVersionInfo = XLSPadlock.PLEvalVar(infoType)
Exit Function
Err:
ReadVersionInfo = ""
End Function

Uso:, ReadVersionInfo("ProductVersion") retorna a versão do produto (Product Version)., ReadVersionInfo("FileVersion") retorna a versão do arquivo (File Version).

Recupera o ID do sistema exclusivo necessário para as chaves de ativação com bloqueio por hardware. Este é o ID que os seus clientes lhe enviarão.

Public Function ReadSystemID() As String
Dim XLSPadlock As Object
On Error GoTo Err
Set XLSPadlock = Application.COMAddIns("GXLSForm.GXLSFormula").Object
ReadSystemID = XLSPadlock.PLEvalVar("SystemID")
Exit Function
Err:
ReadSystemID = ""
End Function

Recupera os parâmetros da linha de comando passados ao arquivo .exe da sua aplicação.

Public Function ReadParamStr(index As Integer) As String
Dim XLSPadlock As Object
On Error GoTo Err
Set XLSPadlock = Application.COMAddIns("GXLSForm.GXLSFormula").Object
ReadParamStr = XLSPadlock.PLEvalVar("ParamStr" & index)
Exit Function
Err:
ReadParamStr = ""
End Function

Uso: ReadParamStr(1) retorna o primeiro parâmetro, ReadParamStr(2) o segundo, e assim por diante.


Gerencie os arquivos de salvamento seguros (.xlsc ou .xlsce) por meio de programação.

Obter o caminho do arquivo de salvamento atual

Section titled “Obter o caminho do arquivo de salvamento atual”

Recupera o caminho completo para o arquivo de salvamento seguro que está carregado atualmente.

Public Function GetSecureWorkbookFilename() As String
Dim XLSPadlock As Object
On Error GoTo Err
Set XLSPadlock = Application.COMAddIns("GXLS.GXLSPLock").Object
GetSecureWorkbookFilename = XLSPadlock.GetSaveFilename()
Exit Function
Err:
GetSecureWorkbookFilename = ""
End Function

Obter o caminho da pasta de salvamento local

Section titled “Obter o caminho da pasta de salvamento local”

Recupera o caminho para a pasta local onde o XLS Padlock armazena as configurações da sua aplicação e os arquivos de salvamento seguros.

Public Function GetStoragePath() As String
Dim XLSPadlock As Object
On Error GoTo Err
Set XLSPadlock = Application.COMAddIns("GXLSForm.GXLSFormula").Object
GetStoragePath = XLSPadlock.PLEvalVar("SPath")
Exit Function
Err:
GetStoragePath = ""
End Function

O XLS Padlock pode chamar automaticamente a sub-rotina XLSPadlock_OnAfterSave depois que um usuário salva o seu trabalho. Isso é útil para registro em log, para exibir uma mensagem de confirmação ou para outras ações posteriores ao salvamento.

Sub XLSPadlock_OnAfterSave(SaveFilename As String)
MsgBox "The workbook has been successfully saved as: " & SaveFilename
End Sub

Abrir um arquivo de salvamento existente com VBA

Section titled “Abrir um arquivo de salvamento existente com VBA”

Abra um arquivo de salvamento seguro por meio de programação. Observe que isso carregará o arquivo em uma nova instância do Excel.

Public Sub LoadXLSPadlockSaveFile(FilePath As String)
Dim XLSPadlock As Object
On Error Resume Next
Set XLSPadlock = Application.COMAddIns("GXLSForm.GXLSFormula").Object
If Not XLSPadlock Is Nothing Then
XLSPadlock.PLOpenSaveFile FilePath
End If
End Sub
' Example of a caller function that shows a file browser:
Sub Load_Old_Save()
Dim strFileToOpen As String
strFileToOpen = Application.GetOpenFilename( _
Title:="Please choose a save file to open", _
FileFilter:="Save Files (*.xlsc),*.xlsc")
If strFileToOpen <> "False" Then
LoadXLSPadlockSaveFile strFileToOpen
End If
End Sub

Sugerir um nome de arquivo para a caixa de diálogo de salvamento

Section titled “Sugerir um nome de arquivo para a caixa de diálogo de salvamento”

Defina o nome de arquivo padrão que aparece na caixa de diálogo “Save As”.

Public Sub SetSecureWorkbookFilename(Filename As String)
Dim XLSPadlock As Object
On Error Resume Next
Set XLSPadlock = Application.COMAddIns("GXLS.GXLSPLock").Object
If Not XLSPadlock Is Nothing Then
XLSPadlock.SetDefaultSaveFilename Filename
End If
End Sub
' Example: Set the default name to "my save.xlsc"
' Call SetSecureWorkbookFilename("D:\My Documents\my save.xlsc")

Salvar uma cópia segura sem solicitar confirmação

Section titled “Salvar uma cópia segura sem solicitar confirmação”

Salve uma cópia segura da planilha diretamente em um caminho de arquivo especificado sem exibir a caixa de diálogo “Save As”.

Public Function SaveSecureWorkbookToFile(Filename As String) As Boolean
Dim XLSPadlock As Object
On Error GoTo Err
Set XLSPadlock = Application.COMAddIns("GXLS.GXLSPLock").Object
SaveSecureWorkbookToFile = XLSPadlock.SaveWorkbook(Filename)
Exit Function
Err:
SaveSecureWorkbookToFile = False
End Function
' Example: Save the workbook directly
' If SaveSecureWorkbookToFile("D:\My Documents\my save.xlsc") Then
' MsgBox "Workbook saved successfully."
' End If

Migrar dados de usuário de uma versão anterior

Section titled “Migrar dados de usuário de uma versão anterior”

Se você publicar uma nova versão da sua planilha, talvez precise importar dados de um arquivo de salvamento criado com uma versão anterior.

Saiba como migrar dados de usuário com VBA


Personalize elementos da interface, como caixas de diálogo.

Ocultar por meio de programação as caixas de diálogo de espera/carregamento

Section titled “Ocultar por meio de programação as caixas de diálogo de espera/carregamento”

Você pode ocultar a caixa de diálogo “Loading workbook, please wait…” com uma chamada VBA em vez de esperar que ela se feche automaticamente.

Public Sub HideLoadingDialog()
Dim XLSPadlock As Object
On Error Resume Next
Set XLSPadlock = Application.COMAddIns("GXLS.GXLSPLock").Object
If Not XLSPadlock Is Nothing Then
' A call with Option "3" and Value "0" hides the dialog.
XLSPadlock.SetOption Option:="3", Value:="0"
End If
End Sub

Interaja com os recursos online do XLS Padlock.

Testa se há uma conexão ativa com a Internet disponível no computador do usuário.

Public Function IsInternetAvailable() As Boolean
Dim XLSPadlock As Object
On Error GoTo Err
Set XLSPadlock = Application.COMAddIns("GXLSForm.GXLSFormula").Object
IsInternetAvailable = (XLSPadlock.PLEvalVar("InternetConnected") = "1")
Exit Function
Err:
IsInternetAvailable = False
End Function

Recupera um hash do token de ativação retornado pelo servidor web após uma ativação online bem-sucedida.

Public Function GetValidationToken() As String
Dim XLSPadlock As Object
On Error GoTo Err
Set XLSPadlock = Application.COMAddIns("GXLSForm.GXLSFormula").Object
GetValidationToken = XLSPadlock.PLEvalVar("ValidationToken")
Exit Function
Err:
GetValidationToken = ""
End Function

Verificar se a validação online foi bem-sucedida

Section titled “Verificar se a validação online foi bem-sucedida”

Obtém o resultado da última tentativa de validação online.

Public Function IsValidationOK() As Boolean
Dim XLSPadlock As Object
On Error GoTo Err
Set XLSPadlock = Application.COMAddIns("GXLSForm.GXLSFormula").Object
IsValidationOK = (XLSPadlock.PLEvalVar("ValidationSuccess") = "1")
Exit Function
Err:
IsValidationOK = False
End Function