Zum Inhalt springen

VBA-API-Kochbuch und Rezepte für XLS Padlock

Diese Rubrik bietet eine umfassende Sammlung von VBA-Code-Ausschnitten („Rezepten“) für die erweiterte Steuerung Ihrer geschützten Anwendung zur Laufzeit. Mit der VBA-API von XLS Padlock können Sie Systeminformationen abrufen, das Speichern und Laden verwalten, die Benutzeroberfläche anpassen und mit Online-Funktionen interagieren.

Die beiden wichtigsten API-Objekte sind: Application.COMAddIns("GXLSForm.GXLSFormula").Object für die meisten Laufzeitinformationen und Application.COMAddIns("GXLS.GXLSPLock").Object für speicherbezogene Operationen.

Jedes Rezept unten stellt eine einsatzbereite VBA-Funktion oder -Subroutine bereit.


Diese Rezepte helfen Ihnen, Informationen über die Umgebung und den Status der Anwendung abzurufen.

Prüfen, ob die Arbeitsmappe geschützt ist

Section titled “Prüfen, ob die Arbeitsmappe geschützt ist”

Verwenden Sie dies, um zu bestätigen, dass Ihr Code innerhalb einer von XLS Padlock erstellten geschützten Anwendung ausgeführt wird.

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

Ruft den Dateinamen der laufenden .exe-Datei ab.

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

Ruft die Versionszeichenketten ab, die Sie im Abschnitt “EXE Version Info” (EXE-Versionsinformationen) von XLS Padlock definiert haben.

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

Verwendung: ReadVersionInfo("ProductVersion") gibt die Product Version zurück, und ReadVersionInfo("FileVersion") gibt die File Version zurück.

Ruft die eindeutige System ID ab, die für hardwaregebundene Activation Keys erforderlich ist. Dies ist die ID, die Ihnen Ihre Kunden zusenden werden.

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

Ruft die Befehlszeilenparameter ab, die an die .exe-Datei Ihrer Anwendung übergeben wurden.

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

Verwendung: ReadParamStr(1) gibt den ersten Parameter zurück, ReadParamStr(2) den zweiten und so weiter.


Verwalten Sie sichere Speicherdateien (.xlsc oder .xlsce) programmgesteuert.

Ruft den vollständigen Pfad zur aktuell geladenen sicheren Speicherdatei ab.

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

Ruft den Pfad zum lokalen Ordner ab, in dem XLS Padlock die Einstellungen Ihrer Anwendung und die sicheren Speicherdateien ablegt.

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

XLS Padlock kann die Subroutine XLSPadlock_OnAfterSave automatisch aufrufen, nachdem ein Benutzer seine Arbeit gespeichert hat. Dies ist nützlich für die Protokollierung, das Anzeigen einer Bestätigungsmeldung oder andere Aktionen nach dem Speichern.

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

Eine vorhandene Speicherdatei mit VBA öffnen

Section titled “Eine vorhandene Speicherdatei mit VBA öffnen”

Öffnen Sie eine sichere Speicherdatei programmgesteuert. Beachten Sie, dass die Datei dabei in einer neuen Instanz von Excel geladen wird.

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

Einen Dateinamen für den Speicherdialog vorschlagen

Section titled “Einen Dateinamen für den Speicherdialog vorschlagen”

Legt den Standarddateinamen fest, der im Dialogfeld “Save As” (Speichern unter) angezeigt wird.

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")

Speichern Sie eine sichere Kopie der Arbeitsmappe direkt unter einem angegebenen Dateipfad, ohne das Dialogfeld “Save As” (Speichern unter) anzuzeigen.

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

Benutzerdaten aus einer früheren Version migrieren

Section titled “Benutzerdaten aus einer früheren Version migrieren”

Wenn Sie eine neue Version Ihrer Arbeitsmappe veröffentlichen, müssen Sie möglicherweise Daten aus einer mit einer früheren Version erstellten Speicherdatei importieren.

Erfahren Sie, wie Sie Benutzerdaten mit VBA migrieren


Passen Sie UI-Elemente wie Dialogfelder an.

Warte-/Ladedialoge programmgesteuert ausblenden

Section titled “Warte-/Ladedialoge programmgesteuert ausblenden”

Sie können das Dialogfeld “Loading workbook, please wait…” (Arbeitsmappe wird geladen, bitte warten…) mit einem VBA-Aufruf ausblenden, anstatt auf das automatische Schließen zu warten.

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

Interagieren Sie mit den Online-Funktionen von XLS Padlock.

Testet, ob auf dem Computer des Benutzers eine aktive Internetverbindung verfügbar ist.

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

Ruft einen Hash des Aktivierungstokens ab, das der Webserver nach einer erfolgreichen Online-Aktivierung zurückgegeben hat.

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

Prüfen, ob die Online-Validierung erfolgreich war

Section titled “Prüfen, ob die Online-Validierung erfolgreich war”

Ruft das Ergebnis des letzten Online-Validierungsversuchs ab.

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