Purpose: create other Excel instances and access secure workbook and companion files
By default, only the Excel instance run by the compiled workbook EXE file is allowed to access the workbook file and its companion files (if any).
If you start another Excel instance from VBA, it can’t access the secure workbook file unless you use the following VBA code to allow access.
Sub RunOtherExcel()
Dim XLSPadlock As Object
Set XLSPadlock = Application.COMAddIns("GXLS.GXLSPLock").Object
another_file = PathToCompiledFile("data.xlsx")
' Start a new Excel instance
Set appExcel = CreateObject("Excel.Application")
' Tell XLS Padlock to grant access to virtual files in new Excel instance
Dim Res As Long
Res = appExcel.Application.Hwnd
XLSPadlock.SetOption Option:="5", Value:=Res
' The new Excel instance can now work with virtual workbook files:
Set wbExcel = appExcel.Workbooks.Open(another_file, False, True)
Set wsExcel = wbExcel.Worksheets("Sheet1")
MsgBox (wsExcel.Cells(1, 1).Value)
' Done, be sure to quit the application.
appExcel.Application.Quit
' Release the object variable.
Set appExcel = Nothing