You can minimize piracy by using Unviewable+ to obfuscate an add-in that contains your macro.
Chris Newman (The Spreadsheet Guru) talks about it, here.
If you hire a professional developer to create an Add-in Express dll, that can help, too.
I use an add-in from Ken Puls called MonkeyTools. It was created with Add-in Express and, presumably, has some additional coding to handle licensing.
Another option is to port your project to .NET and make use of any robust protection schemes available for that platform.
Bottom line: you have to go through a lot of hoops to secure an inherently insecure workbook application.