Skip to content

Frequently Asked Questions

Find quick answers to the most common questions about VBA Padlock: compatibility, compilation, licensing, distribution, and security.

VBA Padlock Studio Welcome Screen

VBA Padlock is a development tool that compiles your VBA source code into protected DLLs. You open your existing Office file, VBA Padlock analyzes its macros automatically, and Produce writes a protected copy where your procedures still work, but their logic runs from an encrypted DLL instead of readable VBA. See the Automatic Protection Workflow.

Do I have to rewrite my macros to protect them?

Section titled “Do I have to rewrite my macros to protect them?”

No. The automatic workflow extracts the VBA you already have, decides procedure by procedure what can move to the DLL, and generates the delegating wrappers itself. Buttons, events, and worksheet formulas keep working unchanged.

VBA Padlock supports:

  • Excel: .xlsm, .xlsb, .xlam
  • Word: .docm, .dotm
  • Access: .accdb
  • PowerPoint: .pptm, .ppam

What are the limitations of the evaluation version?

Section titled “What are the limitations of the evaluation version?”

The free evaluation version includes all features of VBA Padlock but adds a notification screen when your protected VBA code runs.

Important: DLLs compiled with the evaluation version automatically expire after a few days. These DLLs are intended only for local testing and evaluation on your machine; they are not permitted for distribution. To create permanent, distributable DLLs, you must purchase a license.

No. VBA Padlock is a native Windows application with no external runtime dependencies. The compiled DLLs also do not require .NET.

Does it work with both 32-bit and 64-bit Office?

Section titled “Does it work with both 32-bit and 64-bit Office?”

Yes. VBA Padlock produces two runtime DLLs (32-bit and 64-bit). The VBA Bridge automatically loads the correct one based on the Office architecture. No configuration is needed.

Does VBA Padlock support Windows ARM or Office ARM?

Section titled “Does VBA Padlock support Windows ARM or Office ARM?”

Native Office ARM is not supported for now. However, on Windows ARM devices (e.g., Surface Pro 11, Surface Laptop 7, or Snapdragon X Elite models), we recommend installing Office 64-bit. It runs via Microsoft’s Prism emulation layer, which allows VBA Padlock’s x64 DLLs to function perfectly.


Successful compilation message and build logs

VBA Padlock compiles standard modules (.bas) and class modules (.cls), including Property accessors, Implements, Collection, Enum, Type, conditional compilation, and more. Compiled code has access to 80+ built-in functions for license checks, date/time calculations, and more. See VBA Compatibility for the full list.

Why does a procedure stay in VBA after the analysis?

Section titled “Why does a procedure stay in VBA after the analysis?”

The Protection Review tells you on each row: event handlers, UserForm and document-module code always stay in the host (Office fires events only there), and procedures sharing module-level state or depending on kept code are demoted safely. It’s behavior, not an error: the kept procedures still work as plain VBA.

It re-reads the VBA modules from your Office file (read-only, macros disabled), reruns the per-procedure analysis, and refreshes the verdicts. Modules you’ve locked (Lock from Re-analyze) are never overwritten silently.

Do I need to inject the VBA Bridge myself?

Section titled “Do I need to inject the VBA Bridge myself?”

No. The VBAPLBridge module ships inside your workbook from the start, and every Produce run refreshes it along with the wrappers. The manual Create VBA Bridge dialog exists only for advanced scenarios.

Can I use Office objects (Worksheets, Ranges, Documents) inside compiled scripts?

Section titled “Can I use Office objects (Worksheets, Ranges, Documents) inside compiled scripts?”

Yes. Compiled scripts have full access to the host Office application through the Application object. You can read and write cell values, manipulate documents, create slides, query databases, and use CreateObject() for COM objects, just like regular VBA. See VBA Compatibility for details and examples.

How many parameters can a function accept?

Section titled “How many parameters can a function accept?”

VBAPL_Execute supports any number of parameters; there is no limit. Internally, calls with 0 to 4 arguments use optimized DLL exports, and calls with 5 or more arguments are automatically packed into an array. This is handled transparently by the VBA Bridge.

What happens if my script has a compilation error?

Section titled “What happens if my script has a compilation error?”

The Messages panel shows the error location and description; double-click to jump to the line. Fix the error and press F5 to recompile, or run a Syntax Check for a quick move/keep report. You can also use Run DLL Function to verify individual functions.

The Run DLL Function dialog for debugging functions


VBA Padlock Studio Activation Settings and licensing options

VBA Padlock can require a license key before your compiled functions execute. You configure activation in the Licensing Features tab and generate keys with the Key Generator. See Licensing System for a full overview.

Yes. You can create trial keys with time limits (e.g., 30 days), run limits, or expiration dates. A nag screen reminds users to purchase during the trial. See Trial Mode.

Hardware locking ties a license key to a specific computer using a Hardware ID derived from hardware components (CPU, hard drive, etc.). This prevents key sharing. See Hardware Locking.

Can users transfer their license to a new computer?

Section titled “Can users transfer their license to a new computer?”

Yes, through deactivation. The user deactivates on the old machine (online or manually), and you issue a new key for the new machine. With online activation, this process is fully automated.

  • HMAC-based and easy to type manually.
  • Supports expiration dates, trial days, and hardware locking.
  • Best for simple activation workflows and lower support friction.

Run-limited trials require the Long format.

VBA Padlock Studio Activation Key Generator dialog


Distribution options and packaging settings

Your distribution must include the protected copy of your Office file (not the source!) and the bin/ directory with three DLLs:

MyWorkbook_protected.xlsm
bin\
├── MyWorkbookrun32.dll
├── MyWorkbookrun64.dll
└── MyWorkbook.dll

Use the Distribution tab to package files automatically; it warns you if you’re about to ship an unprotected source file.

The runtime DLLs are signed by G.D.G. Software using Authenticode certificates. Windows SmartScreen and antivirus software recognize them as legitimate. The satellite DLL is not Authenticode-signed by G.D.G. Software but is integrity-verified by an internal cryptographic signature. You can optionally sign it with your own Authenticode certificate.

Can I create an installer for my application?

Section titled “Can I create an installer for my application?”

Yes. The Create Installer dialog generates installer scripts using Paquet Builder.

Create Installer dialog in VBA Padlock Studio


The VBA bytecode compilation and execution schema

VBA Padlock applies multiple defense layers: compilation into bytecode, digital signatures, anti-debugging, and integrity checks. No protection is unbreakable, but VBA Padlock raises the difficulty of reverse engineering significantly. See Security.

My antivirus flags the DLL as suspicious. Is it safe?

Section titled “My antivirus flags the DLL as suspicious. Is it safe?”

This is a false positive caused by protection patterns. VBA Padlock runtime DLLs are digitally signed by G.D.G. Software. Submit the DLL to your antivirus vendor for whitelisting, or add the bin/ directory to your exclusion list.

The Security Code is a unique identifier that links your Office file to the compiled DLL. It prevents someone from substituting a DLL from a different project. You configure it in Project Info.


VBA Padlock Studio Online Activation settings for server-based licensing

Only if you want automated online activation. You can also generate and distribute keys manually using the Key Generator. If you do want a server, VBA Padlock provides a PHP activation kit. See Deploy the Activation Server.

  • PHP 8.1+
  • MySQL / MariaDB
  • Apache with mod_rewrite
  • Composer (for PHP dependencies)
  • HTTPS (SSL certificate required)

Yes. If online activation fails or is not available, users can use manual activation. They provide their Hardware ID, and you generate a key for them. See Key Generation guide.

Activation dialog showing the Hardware ID that the customer sends you