I am looking at a choice for consuming a rest service from a word document. As far as I can tell there are 2 choices.

Using a .net apps as listed here: http://msdn.microsoft.com/en-us/library/office/jj229830(v=office.15).aspx where the code would be compiled.

or using VBA/Macro as listed here: https://stackoverflow.com/questions/19553476/how-to-make-rest-call-with-vba-in-excel.

I am aware that macros have many built in features for security and am wondering if these would out weigh the benefits of an application created and run through the apps framework.


A .NET application is more likely to be securable since so much effort goes into the security of it and there are many options.

VBA on the other hand is only designed to provide some level of automation to Office, usable by power users more than developers. It doesn't get updated much and has a rather weaker security model.

Having said that, I'm not sure how much difference you would see in the real world. The main problems with VBA, at least in enterprise type environments, is that the security model is so untrusted, it can be difficult to get IT departments to allow VBA to run at all.

So it is really down to the environment in which you need to run it. You need not just to think about the security but also how it will be delivered to client computers, how it will be maintained, what restrictions will the client PC's be operating under, how many different configurations will you need to support and those kinds of issues. No point in having something secure that can be maintained in the actual end-user environments.

Particularly note the issue in your second link about having not added a reference. Remember that this has to happen on every PC and that references can change with changes and updates on the PC. This makes supporting VBA applications fraught with problems.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.