How to enable "Trust access to the VBA project object model" during VSTO add-in setup?

T

Thomas

Hello developers,

How to enable Excel 2007 "Trust access to the VBA project object model"
option during VSTO add-in setup?
My add-in requires that this security option is enabled. I tell users to
manually turn this on before they run setup but some of them forget.
I hope this can be automated somehow. I searched Google but found nothing
about corresponding registry entry.

Thanks for any pointers

Thomas
 
P

Patrick Molloy

This is a security issue ... if you could do it with code, there would be no
security would there?
 
B

Bob Phillips

I am not familiar enough with VSTO, but I know it can't be done via code
with VBA, and I would think (hope!) it is the same in VSTO. The user should
determine whether they want to set it.
 
D

Dave Peterson

I don't speak VSTO, but I hope what you're asking for is not possible.

This is a security setting (my security setting!). Your program shouldn't be
able to change this. If your program can do it, then anyone (including malware)
could do it.

If you find a way to do this, I hope that you change the setting back to what it
was when you're done.
 
T

Thomas

I did not say I wanted to alter this settings from within Excel, perhaps
using VBA.
I believe it is stored somewhere in registry and can be changed as a part of
setup.

Thomas
 
T

Thomas

I am afraid I do not express myself clearly.

I wrote: "enable [...] option during VSTO add-in setup"
while most people trying to help (thank you) read it: change using VBA,
perhaps from within the Excel application.

Thomas
 
D

Dave Peterson

And I didn't suggest that you were trying to alter the setting from within
excel.

I think it's a bad idea no matter what approach is used.
 
T

Thomas

This Excel setting can be changed with three lines of C# code.
Thomas

RegistryKey key =
Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Office\12.0\Excel\Security",
true);
key.SetValue("AccessVBOM", 1);
key.Close();
 
J

Jie Wang [MSFT]

Hi Thomas,

You found the right key. However, I suggest you not to do that in your
setup, instead, you can set the value in your add-in. That's because you're
operating the HKCU, which means this option is per user instead of machine
wide.

You may also consider put a warning dialog letting the users know about the
setting change, just like what VSTO does in design time.

I have a sample in the CodeFx project (http://cfx.codeplex.com/) called
CSVstoVBAInterop, which demonstrates the use of this setting and some VBA
interop features.

Regards,
Jie Wang

Microsoft Online Community Support

Delighting our customers is our #1 priority. We welcome your comments and
suggestions about how we can improve the support we provide to you. Please
feel free to let my manager know what you think of the level of service
provided. You can send feedback directly to my manager at:
(e-mail address removed).

==================================================
Get notification to my posts through email? Please refer to
http://msdn.microsoft.com/en-us/subscriptions/aa948868.aspx#notifications.

Note: MSDN Managed Newsgroup support offering is for non-urgent issues
where an initial response from the community or a Microsoft Support
Engineer within 2 business days is acceptable. Please note that each follow
up response may take approximately 2 business days as the support
professional working with you may need further investigation to reach the
most efficient resolution. The offering is not appropriate for situations
that require urgent, real-time or phone-based interactions. Issues of this
nature are best handled working with a dedicated Microsoft Support Engineer
by contacting Microsoft Customer Support Services (CSS) at
http://msdn.microsoft.com/en-us/subscriptions/aa948874.aspx
==================================================
This posting is provided "AS IS" with no warranties, and confers no rights.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top