How to prevent users from accessing VBA? - vba

we have a COM add-in that we use in MS Office application like Word and Excel.
That COM add-in has exposed few APIs to use, which we use for customization.
Problem is - Any user can access the APIs and that is causing security problems.
we dont want that to happen, we want to give access to VBA editor to only few peoples.
Is there any way - to disable VBA editor, without disabling VBA, because we want to use other Macros and Add-ins.
Thanks in advance!
PS - I tried hiding 'Developer' tab from toolbar but anyone who knows shortcut (ALT-F11), can still use it.

If one of the requirements of the COM Add-In is restricted access, the solution shouldn't be to disable anything than can access it. The answer should be to fix the add-in itself. An easy way to do it would be to define a user group that can use the add-in, and then just make the add-in check to verify the user is a member of that group. That should be simple to implement and simple to maintain.

The VBA Password Protection does not actually protect you from people reading the file. It's incredibly simple to remove the protection.
One alternative is to obfuscate the COM API as well as the VBA (so that, even if people can read the code, it would be difficult to figure out what's going on). Apple has done this in the past (e.g. isYoMamaWearsCombatBootsSupported -- https://github.com/JaviSoto/iOS7-Runtime-Headers/commit/6ccf9c4526992fec0dc414d48e4a3f7446e9822f#L10R61)

Can't you add a password to view/edit code? then at least they can't see your api and should prevent them from opening the editor.
Right click the project in the VBA project window and select 'properties' to add a password to that project in the Protection tab.

Related

Outlook add-in which uses another add-in

I have old outlook add-in (COM/VSTO). And I have new one with office.js.
Is it possible to use old one from new one?
Basically I want to imitate left click action on old plugin from new plugin code.
Thank you
Office.js API doesn't have functionality to directly communicate to the COM/VSTO technology add-ins. You may share certain message data and/or user properties as described at How to share user roaming settings between Outlook COM/VSTO and Office JS Add-in, but nothing more.
If you have strong business case and this is something you would like to see in upcoming Office.js releases, you may post your suggestion at officespdev.uservoice.com

Manage SharePoint Document Library using Excel VBA

Ever since the SharedWorkspace object was deprecated in Excel VBA, I have been unable to find an alternative way to perform the same tasks. Note Excel VBA is the only development tool that I have access to. I do have SharePoint Designer, though.
Did Microsoft provide anything to replace the functionality provided by the SharedWorkspace object?
Most of my tasks involve iterating through the documents in a document library. E.g., to see which ones were checked out, etc. That was trivial to do using the SharedWorkspace object. Can anyone tell me a way to do that using VBA without the SharedWorkspace object?
I've found that I can accomplish the task using the SharePoint Designer reference in my VBA code, but that requires me to open the SharePoint Designer UI, which takes too long for my needs. (Why doesn't the SharePoint Designer Application object have a visible property like the other Office apps do? That would have helped).
SharePoint offers a rich set of Web services to interface with content on a site. To iterate through all documents in a document library, you can use the GetListItems web service. This will require that you write code to call the web service. XMLHTTP is one "easy" way to do so. Please let me know if you need a code sample.

How can I customize the default workflow email templates in SharePoint 2010?

I know how to customize an instance of an email template using SharePoint Designer 2010, but when there are conceivably dozons of instances of an approval process it can be tedious to adjust each email template instance in turn.
Is there a way to customize the core templates upon which all these process emails are based? (so I only need to customize the email templace once)
Ideally I am looking for a code-free solution, but I'm willing to hear from both camps on this.
Thanks!
As far as I can tell this is not possible unless you are using SharePoint Designer or a custom coded solution.

outlook security in asp.net webpage

I used http://www.everythingaccess.com/tutorials.asp?ID=Outlook-Send-E-mail-Without-Security-Warning , to finish my first ms access vba app that sends multiple notifications via outlook, without security pop-up. Now I want to make a WEB BASED version of it. So, using asp.net & mysql instead of vba & access raises certain questions.
When I comes down to it, what would be the difference of using (will post link below) vs installing VSTO runtime to run the outlook module I allready used in my first link?
Would you consider the "add-in" a more robust, integrated, easy approach since it seems I'd otherwise need to put the module of my first link in each users outlook install or am I just completely mistaken or is it a combination of both, please explain...
Click below for
2nd link of first post , outlook addin

GetUserAvailability from Exchange from a COM Outlook addin

I have a COM Outlook addin programmed in C++ (VS2005). I'm trying to see if within this addin I can get a random user or resource and see if it is available during a certain meeting time. Basically I'm trying to do something like getuseravailability() from the 2007 Exchange Web Service api listed below.
getuseravailability
Is this the only way to get this information? I've been looking through CDO, ADSI, MAPI and the Outlook object model but can't find anything else like it. I'm avoiding using web services because the Exchange Servers I run against may not have it enabled/ may not be Exchange 2007. And also, I'm hoping for a COM api easily integrated with the existing Outlook COM addin, was really hoping for an OOM solution.
Am I wrong or would the webservices sdk require .net to be installed on the machine running the addin as well?
I believe I've found a way to do this with CDO. Will be trying a sample app for this to see if it does what I think it does.
http://msdn.microsoft.com/en-us/library/ms870482%28EXCHG.65%29.aspx
I didn't find this earlier because the MSDN library's default view doesn't easily let you browse through the table of contents for a section. You have to go into MSDNs preferences and choose "Classic View" to get the table of contents view on the left.