The best protection is to let XLS Padlock compile parts of your VBA code into bytecode thanks to its integrated VBA compiler. You can also apply code obfuscation if you have a tool to non-compiled VBA code portions.

However, VBA obfuscation doesn't prevent someone from copying your code. True VBA compilation made with XLS Padlock does since the original VBA code doesn't exist anymore and compiled code can't be run outside your secure application made with XLS Padlock.